11.1 使用关联容器
使用map:
使用set:
11.2 关联容器概述
11.2.1 定义关联容器
初始化multimap或multiset
11.2.2 关键字类型的要求
11.2.3 pair类型
11.3 关联容器操作
11.3.1 关联容器迭代器
解引用一个关联容器迭代器时,我们就可以得到一个类型为容器的value_type值。对于map,是一个pair类型
set的迭代器是const的
关联容器和算法
通常我们不对关联容器使用泛型算法(因为const这一特性)
一般用关联容器定义的专用find成员会比调用泛型find快的多。
11.3.2 添加算法
insert可以接受一对迭代器,或者一个初始化列表。
向map添加元素(四种)
insert
检测insert的返回值
insert返回一个pair,pair的first是一个迭代器,指向具有给定关键字的元素;second是一个bool值,指出元素是插入成功还是已经存在于容器中。
如果已经存在:second为false
如果不存在;second为true
向multiset或multimap添加元素
关键字不唯一,一个关键字可以有多个映射。
11.3.3删除元素
11.3.4 map的下标操作
使用下标操作的返回值
下标操作返回一个mapped_type对象(second的对象类型)
解引用一个map迭代器时,得到一个value_type对象(pair<const key_type,mapped_type>)
11.3.5 访问元素
其中lower_bound和upper_bound不适用于无序容器
对map使用find代替下标操作
下标操作有可能会添加元素,如果没有特殊需求最好使用find