C++ primer学习笔记 第10章

来源:互联网 发布:乐其网络 知乎 编辑:程序博客网 时间:2024/06/07 05:12

1.关联容器通过键key 存储和读取元素。两个基本的关联容器是map和set。

2.

3.set比较适合有效存储不同值的集合,而map适用于存储(或修改)每个键所关联值的情况。

4.

5.创建pair对象时,必须提供两个类型名。

6.对于pair类,可以直接访问其数据成员,其成员都是公有的,分别名为first和second。

7.在迭代遍历关联容器时,按键的顺序访问元素,而与元素在容器中的存放位置完全无关。

8.

9.比较函数在键类型上 严格弱排序。当一个键与自身比较时 返回false结果。

10.对于键 类型,唯一的约束就是必须支持 < 操作符。

11.value_type 是存储元素的键以及值的pair类型, 而且键为 const。即它的值成员可修改,键成员不能修改。

12.用下标访问不存在的元素将导致在map容器中添加一个新的元素,它的键即为该下标值。

13.

14.下标操作符带来的副作用:不必要的初始化。

15.使用make_pair和typedef简化。

16.

17.

18.map容器是键-对的集合;set容器只是单纯的键的集合。

19.set不支持下标操作符,而且没有定义mapped_type类型。

20.set中的键也为const。

21.multimap不支持下标运算。

22.在multimap和multiset容器中,如果某个键对应多个实例,则这些实例在容器中相邻存放。

23.

24.lower_bound返回的迭代器指向该键关联的第一个实例,若该键不在容器中,则lower_bound返回在保持容器元素顺序的前提下该键应被插入的第一个位置。

25.equal_range函数返回存储一对迭代器的pair对象。

26.map<string,int> wordCount;可用作其下标的类型为string和C风格字符串(包括字面值、数组名、指针)。

27.带一个键-值pair形参的insert函数将返回一个pair对象,该对象包含一个迭代器和一个bool值,其中迭代器指向map中具有相应键的元素,而bool值则表示是否插入了该元素。

28.map< string,vector<int> >类型,参数类型为pair< const string,vector<int> >,返回值类型为pair< map< string,vector<int> > ::iterator,bool>。

29.set容器中的元素不能修改。

30.在使用关联容器时,它的键不但有一个类型,而且还有一个相关的比较函数。 所用的比较函数必须在键类型上定义严格弱排序(strict weak ordering)。所谓的严格弱排序可理解为键类型数据上的“小于”关系。当用于一个键与自身的比较时,肯定会导致 false 结果。如果它们相互之间都不存在“小于”关系,则容器将之视为相同的键。用做 map 对象的键时,可使用任意一个键值来访问相应的元素。










0 0
原创粉丝点击