快捷搜索:  汽车  科技

c语言队列初始化技巧(C11新特性37)

c语言队列初始化技巧(C11新特性37)map<string int> scores;关联容器的例子name[2]="zhou";cout<<name[2]<<endl;无论是向vector写入元素,还是从vector读出元素都使用索引,它本质上是元素在容器中的位置。

c语言队列初始化技巧(C11新特性37)(1)

什么是关联容器

关联容器(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;

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

作者观点

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


觉得本文有帮助?请分享给更多人。

关注【面向对象思考】,轻松学习每一天!

猜您喜欢: