要学习关联容器,就必须先知道什么是pair,pair是关联容器的某一对键值对的表示,也就是关联容器的value_type对象。
关联容器通过支持键值对的存储,从而可以高效地查找和读取元素,基本的关联容器有map和set。
关联容器拥有顺序容器的大部分接口,没有的接口都是和顺序有关的接口(因关联容器内的元素在容器内无序),关联容器没有front、back、push_back、push_front、pop_back和pop_front操作。
map类定义的类型:
map<K,V>::key_type 用作索引的键类型
map<K,V>::mapped_type 用作值的类型
map<K,V>::value_type pair类型,表示容器的一个键值对
map容器支持下标索引操作,下标为键值,通过下标操作可以访问元素,修改元素值,增加元素(vector不行)。通过下标的操作返回值是mapped_type类型,是一个引用类型值,所以通过它可以修改键值对中的元素值。
查看某元素是否在容器内可以使用find或者count来实现,注意的是find返回值是容器的迭代器,而count返回值是intint型变量。
set关联容器内只存储键值,set翻译过来是集合,它和数学中定义的集合差不多是一样的,无序、元素值不能重复。它和vector的不同点其中一处就是vector允许元素值相等,而set则不允许,可以初步理解set为map<T,const bool>类型。
练习代码:
// CorrelationContainer.cpp : 定义控制台应用程序的入口点。//关联容器#include "stdafx.h"#include #include #include #include
结果图:
![](https://img-my.csdn.net/uploads/201211/17/1353127554_9718.png)