关联容器
包含8种,map、set为有序、关键字不可重复的容器,加上multi可重复,加上unordered用哈希函数组织的无序,还可以先加unordered再加multi
关联数组map:构造map容器需要两个类型参数,第一个为关键字第二个为值,使用中括号查找关键字。从map容器种提取数据会得到pair类型的对象。
简单的说,pair是一种类,保存名为first和second的公有数据成员。map使用pair类的first保存关键字,second保存值

定义关联容器
关联容器支持大部分顺序容器的操作,但不支持,push_front和push_back,因为关联容器不存在顺序的概念。关联容器的迭代器都是双向的
关联容器拥有默认构造函数,可以默认初始化,也支持拷贝和根据范围赋值初始化,新标准下也可以进行值初始化
(练习11.7)

关键字类型的要求
由于关联容器按照关键字的某种比较方式进排序,所以一定要确保关键字具有排序方式。默认情况下使用<运算符,可以自己定义新的排序方式,但是必须满足严格弱序(可以看作小于等于)。当用作map的关键字时,相等的关键字只能有一个元素与这两个关键字关联,可以使用这两种任意一个来获取这个元素值
定义关联容器时,如果要使用新的排序方式,要在尖括号中标出,一般使用指针(函数指针)
(练习11.10)

pair类型
定义在utility头文件中,创建一个pair时要给出两个类型名,将成为pair内两个公有成员的类型名。pair的默认构造函数对数据成员执行值初始化。
make_pair:返回一个由函数参数初始化的pair对象,类型由两个参数推断出来
可以隐式返回pair类型对象,用花括号把返回的两个值包围起来