《c++ primer》第 10 章 关联容器
2013-05-23 09:12
267 查看
概论
关联容器与顺序容器的本质差别:关联容器通过键(key)存储和读取元素,而顺序容器通过元素在容器中的位置顺序访问和存储元素引言 pair类型
在utility中定义生成pair对象make_pair map<stirng,int>word;word.insert(make_pair("abc",1))
在返回一对值的时候,可以考虑使用,例如返回最小最大值
关联容器
区别于顺序容器,关联容器不提供front,push_front,push_back操作不能定义关联容器的大小
MAP类型
头文件map键类型必须定义<,并且必须能正确工作,因为当用迭代器遍历字典的时候,会将其按照键的大小输出,而不是按照插入顺序
map<K,V>::key_type是索引的键的类型,map<K,V>::mapped_type是键类型,map<K,V>::value_type是pair类型,第一个成员是键类型const,不能修改
给map添加元素,两种方法:1.insert 2使用下标赋值
用下标访问不存在的元素会导致在map容器中添加一个新元素,所关联的值:类类型使用默认构造函数,而内置类型初始化为0
//记录每个单词出现的次数 map<string,int>word_count; string word; while(cin >> word) ++word_count[word];
map::insert的返回类型很有趣,输入参数一般为pair类型
带有pair类型的insert的返回值是pair类型的,pair<迭代器类型,布尔值>
查找并读取map中的元素,count和find函数
从map中删除元素,区别于顺序迭代器,它的返回值是void
SET类型
SET容器中只是单纯的键的集合。它不支持下标操作,没有定义mapped_value类型。在set容器中,value_type不是pair类型,而是与key_type相同的类型获得set元素的迭代器后,只能对其进行读操作,而不能写操作,const
multimap和multiset类型
允许一个键对应多个实例,但是multimap不支持下标运算。如果某个键对应多个实例,那么它将相邻排放。
相关文章推荐
- C++ primer第二次阅读学习笔记(第10章:关联容器)
- C++ primer 读书笔记系列——(7)关联容器
- C++ Primer : 第十一章 : 关联容器之概述、有序关联容器关键字要求和pair类型
- 11、C++ Primer 4th 笔记,关联容器(1)
- 第十章-关联容器----重学C++之《 C++ PRIMER》
- 关联容器 - 1【C++ Primer 学习笔记 - 第十章】
- C++ primer 二十 map、sset关联容器
- C++ primer 关联容器
- [C++ Primer] : 第11章: 关联容器
- 第十章-关联容器----重学C++之《 C++ PRIMER》
- C++ Primer学习笔记2--c++ 关联容器
- C++ primer【笔记】关联容器 map
- C++ Primer 10 关联容器
- 12、C++ Primer 4th 笔记,关联容器(2)
- c++ primer 关联容器习题练习
- C++ Primer 学习笔记_34_STL实践与分析(8) --引言、pair类型、关联容器
- C++ Primer学习之(10)——关联容器
- C++ Primer 【第四版】第十章 关联容器
- 读书笔记:C++ primer 5th edition--chapter11.关联容器
- C++ primer 关联容器