C++11新特性(37)- 关联容器的列表初始化

什么是关联容器


关联容器(associative container)并不是C++11才有的概念,之所以叫关联容器是因为容器中的元素是通过关键字来保存和访问的,与之相对的是顺序容器(sequence container),其中的元素是通过它们在容器的位置来保存和访问的。


顺序容器的例子

 

vector<string> name{"zhao", "qian",  
          "sun", "li"};
name[2] = "zhou";
cout << name[2] << endl;


无论是向vector写入元素,还是从vector读出元素都使用索引,它本质上是元素在容器中的位置。


关联容器的例子


map<string, int> scores;
scores["zhao"] = 10;
scores["qian"] = 20;
cout << scores["qian"] << endl;


无论是向map写入数据,还是从map读出数据都是使用关键字。


关联容器的列表初始化


同顺序容易一样,关联容器也可以使用列表初始化,对于上面的例子,也可以这样编码:


map<string, int> scores{{"zhao", 10},
             {"qian", 20}};
cout << scores["qian"] << endl;


就好像初始化结构体数组的感觉。


作者观点


靠直觉就能编出正确的程序,这才像个高级语言的样子。


觉得本文有帮助?请分享给更多人。
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】