C++ Primer Chapter 11-2

来源:互联网 发布:js注释快捷键 编辑:程序博客网 时间:2024/06/06 13:18
1:遍历有序容器时,其按关键字的升序遍历的,先低后高。这个与其数据结构有关。

2:关联容器的关键字是 const 类型,使得关联容器不适用于某些泛型算法。但是可以用于只读型算法,另外也可以用 inserter 来使得关联容器作为目标位置,但是由于关联容器的数据结构的特殊,使得某些泛型算法效率很低

3:map 迭代器其实是 pair<const key_type, mapped_type> :: iterator ;

4:由于 map 和 set 关键字是不可以重复的,所以插入重复的关键字是不会对其造成影响的。

5:关联容器的 insert 函数,对于不包含重复关键字的关联容器,返回一个pair 其 first 成员是一个迭代器指向具有给定值的关键字的元素second 成员是一个 bool 变量指示插入成功与否。另外插入元素是value_type 类型的变量。而对于可以包含重复关键字的关联容器,返回一个迭代器指向被插入元

6 :一般对于不重复的 map , 如果有多个变量对应一个关键字,那么可以用 vector 作为元素存放多个变量,也可以用 multimap 去存放,那么关键字可以重复,无需使用 vector 。

7: insert 带迭代器参数的版本 指示 从该迭代器所指元素后开始插入。

8:关联容器的 erase 函数 和顺序容器的类似,只不过关联容器可以用关键字指定要删除的元素。详见 page387

9 :只有没有重复关键字的关联容器可以用下标,而且set 不可以用下标。只有 map 类型可以用。因为有重复关键字就存在多个值set 关键字即为值 ,用下表无意义

10: map 的下标运算符提供索引,并返回一个与关键字对应的 值(对象)的引用,如果不存在关键字还会去创建一个pair 插入map中。由于下标有可能插入一个元素 ,我们只可以对非 const 的 map 运用

11:利用 at 去索引一个关键字的元素,不存在关键字不会去创建一个新值,而是抛出一个 out_of_range 异常

12: map 的下标返回的是一个 mapped_type 对象,而迭代器解引用返回的是一个 value_type 的类型(对于map 就是一个 pair )
0 0
原创粉丝点击