关联容器map-pair-set
关联容器支持关键字查找和访问,主要有map和set这两种关键字。
map中的元素是关键字-值(key-value)对,map是有序的容器,元素的排序按照每个元素中的关键字排序。关键字起到索引作用,值是关键字对应的数据。
set中的元素只有关键字,set支持查询作用——检索某些内容是否在容器内。
除了map,set外还有mulimap,muliset,以及对应这四种的无序形式unordered_map,unordered_set, unordered_mulimap,unordered_muliset,这里不介绍这六种。
map
1 创建map
map是模板类,形如 map<T1,T2>
1 |
|
注意:: 对上面对象mp初始化中三个元素的顺序是{“a”,1},{“d”,4}, {“b”,2},但是因为map是有序容器,按照关键字排序,实际中mp中元素索引顺序是{“a”,1},{“b”,2},{“d”,4}
2 索引/遍历map
map中的元素其实是pair类型。pair是用来生成特定类型的模板,他的格式是pair<T1,T2>,需要给它提供两个模板类型。每一个pair对象都是map中的一个键值对。
pair类型有first,second两个成员,分别表示pair中第一个和第二个值,也就对应关键字-值。
1 |
|
** ******** 下面介绍元素的遍历 ********** **
1 |
|
output:
1 |
|
3 插入元素
1 |
|
注意:
通过insert函数插入元素时,如果新插入的元素的关键字在map中已经有了,那么不会插入。比如上边再执行mp.insert(make_pair("e",10));
map中”e”关键字的值还是5.
但是通过mp["e"] = 10;
这种方法插入e的值改为10
set
1 |
|
output:
1 |
|
对于关联容器的其他操作,比如insert,find,erase,size,empty等见CPLUSPLUS网站
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!