C++学习笔记【第二部分第十一章:关联容器】

来源:互联网 发布:淘宝卖办公用品 编辑:程序博客网 时间:2024/05/21 21:40

关联容器
1. map & set是两个主要的关联容器类型
2. multi允许重复关键字,unordered开头表示无序保存
3. 关联容器不支持顺序容器关于位置的操作,也不支持构造函数或插入操作
4. 关联容器的迭代器是双向的
5. set中只有关键字没有值
6. 对于有序容器map,multimap,set,multiset必须定义关键字比较的方法
7. 当用decltype来获得一个函数指针类型时,必须加上一个来指出我们要使用一个给定函数类型的指针,如:decltype(func),这是指向func函数的指针。P379
8. 从map中提取一个元素时会得到一个pair类型的对象。pair的数据成员是public的
9. 我们不能改变一个元素的关键字,所以pair的关键字是const 的
10. 当一个迭代器遍历一个map/multimap/set/multiset的时候,迭代器是按照关键字升序遍历元素
11. 通常不对关联容器使用泛型算法,关联容器可用于只读取元素的算啊发。
12. 对map进行insert操作时,元素类型必须是pair
13. 与vector和string不一样,map的下标运算符返回的是mapped_type对象,解引用map迭代器返回的是value_type的对象。前两者这两种方式返回的对象类型是相同的
14. 如果lower_bound &upper_bound返回相同的迭代器,则关键字不在容器中
15. equal_range接受一个关键字,返回一个迭代器pair
16. 如果关键字类型固有就是无序的,或者问题可以用哈希技术解决,就可以使用无序容器
17. 无序容器的性能依赖于哈希函数的质量和桶的数量和大小

原创粉丝点击