- 关联容器的特点
- 每个关联容器都有一个键(key)
- 可以根据键高效地查找元素
- 接口
- 插入:insert
- 删除:erase
- 查找:find
- 定界:lowerbound、upperbound、equal_range
- 计数:count
关联容器概念图
四种关联容器
- 单重关联容器(set和map)
- 键值是唯一的,一个键值只能对应一个元素
- 多重关联容器(multiset和multimap)
- 键值是不唯一的,一个键值可以对应多个元素
- 简单关联容器(set和multiset)
- 容器只有一个类型参数,如set、multiset,表示键类型
- 容器的元素就是键本身
- 二元关联容器(map和multimap)
- 容器有两个类型参数,如map、multimap,分别表示键和附加数据的类型
- 容器的元素类型是pair,即由键类型和元素类型复合而成的二元组
无序关联容器
- C++11新标准中定义了4个无序关联容器
- unorderedset、unorderedmap、unorderedmultiset、unorderedmultimap
- 不是使用比较运算符来组织元素的,而是通过一个哈希函数和键类型的==运算符。
- 提供了与有序容器相同的操作
- 可以直接定义关键字是内置类型的无序容器。
- 不能直接定义关键字类型为自定义类的无序容器,如果需要,必须提供我们自己的hash模板。