一.关联容器
关联容器和顺序容器有着根本的不同:关联容器中的元素是按关键字来保存和访问的。 与之相对,顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的。
【特点】
① 支持高效的关键字查询、插入和删除操作,时间复杂度O(log n)
② 每个关键字只会保留一份(自动去重)。
③ 按照关键字从小到大有序保存元素(自动排序)。
二.map
map简介
map是一个关键字-值(key-value)对的集合,例如可以将一个人的名字作为关键字, 将其电话号码作为值。我们称这样的数据结构为:从key到value的映射。map类型通常 被称为关联数组
头文件:map的头文件为:<map>,使用前必需通过#include引入头文件。
名字空间:map属于std名字空间,需要使用using namespace std; 引入std名字空间。
map的定义
map <KeyType,ValueType>m; map的定义需要分别提供key和value的数据类型。
map的KeyType必须支持小于(<)操作符,如string和int。
Key不支持“<”操作符
Key支持“<”操作符,此时根据关键字中的x排序 去重 快速删查
下标访问[]
map类似于数组可以使用下标访问,只是这里的下标是key-value的key
map <KeyType,ValueType>dict;
修改: dict[key] = value;
如果map中不存在key,则在map中加⼊key-value对,否则修改key所对应的值。
访问: dict[key];
如果key已经存在与dict中,则可以通过dict[key]获取key对应的value的值
迭代器
map<KeyType,ValueType>::iterator