======关联容器======
C++ Primer 笔记 第十一章\\
----
**关联容器**(//Associative Container//)指使用 //Key// 进行元素存取的容器。这种存取方式使得关联容器的**查询效率非常高**。\\ \\
关联容器拥有两种类型://Map// 和 //Set//:
* Map 中的元素成对出现,包括一个 //Key// 与其对应的存储内容
* Set 中的 //Key// 就是元素
从应用上来讲,需要快速查找指定内容的情形可以使用 //Map//,比如字典:字就是 key,而解释就是存储的内容。而利用 //Set// 可以实现高效的文字过滤。\\ \\
STL 提供的关联容器分为 8 种,主要以三个方面来划分:
* 是 set 或 map
* Key 是否唯一
* 是否**按顺序**存储元素(Key 是不是有序)
允许重复 Key 的关联容器以 ''multi'' 开头;不按顺序存储元素的关联容器以 ''unordered'' 开头。比如:
unordered_multmap
指的是一个//元素内容成对出现的、Key 可以重复的、内容不按顺序存储的//关联容器。所有容器的类型如下图:
\\ \\
{{ cs:programming:cpp:cpp_primer:acontainers.svg?500 |}}
==关联容器的头文件==
* ''map'' 与 ''multimap'' 类型定义于 ''