如何使用初始化列表消除冗余C++代码
2020-04-01 18:30
531 查看
我们在写对map,vector等等容器进行赋值操作的时候,往往会写很多冗余的代码
如下这个情形,就是我们需要对
map<int, Node> node_map这样的容器进行初始化, 而且map里面还有结构体。
然后就开始一边又一遍重复写着相同的代码进行初始化,这样的代码不仅重复而且极易出错
如下所示:
struct Node { int a; float b; string c; }st; int main (){ map<int, Node> node_map; Node node; node.a = 1; node.b = 1.1; node.c = "adf"; node_map[0] = node; Node node1; node1.a = 2; node1.b = 1.1; node1.c = "2adf"; node_map[1] = node1; Node node2; node2.a = 3; node2.b = 3.1; node2.c = "3adf"; node_map[2] = node2; Node node3; node3.a = 3; node3.b = 3.1; node3.c = "3adf"; node_map[3] = node3; for (pair<int, Node> node_pair : node_map) { cout << node_pair.second.c << endl; } }
我们其实可以使用结构体的初始化列表的特性,这这段代码已经精简,代码如下:
struct Node { int a; float b; string c; }st; int main (){ map<int, Node> node_map = { {0,{1, 1.1, "adf"}}, {1,{2, 1.1, "1adf"}}, {2,{3, 1.1, "2adf"}}, {3,{3, 1.1, "3adf"}}, }; for (pair<int, Node> node_pair : node_map) { cout << node_pair.second.c << endl; } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Java界的神器-使用Lombok来消除你的冗余代码量
- 【Android学习笔记】如何使用Eclipse在Android项目中调用C/C++代码,及遇到的错误解决方法
- 使用lombok消除冗余代码
- .net如何使用C++的代码?托管C ++和非托管C ++互相访问
- C++中如何正确使用include来降低代码的耦合度
- 如何使用别人的代码 (特指在MFC里面 或者推广为C++里面)
- C和C++的面向对象专题(5)——合理使用模板,避免代码冗余
- 如何在CUDA代码中使用虚函数(C++)
- C/C++ 如何使用公共代码
- 如何使用gSOAP将web服务转换成C++代码
- .net如何使用C++的代码?托管C ++和非托管C ++互相访问
- lombok如何做的冗余代码消除。
- 如何使用Lua扩展C/C++应用系列1
- 如何在C++中使用unicode编码
- (原創) 如何使用C++/CLI读/写jpg檔? (.NET) (C++/CLI) (GDI+) (C/C++) (Image Processing)
- 【翻译】MSIL 教程(二):数组、分支、循环、使用不安全代码和如何调用Win32 API
- 在VIM中如何用ctags给c++代码打tags:omnicppcomplete
- 如何编写异常安全的C++代码
- (原創) 如何使用C++/CLI对图片做Grayscale Erosion? (.NET) (C/C++) (C++/CLI) (GDI+) (Image Processing)
- 如何使用HSRP确保路由器冗余