unordered_map是一个关联容器,存储key,value.其中元素并没有特别的次序关系
特点:
1. 关联容器中的元素是通过主键(Key)而不是它们在容器中的绝对位置来引用的。
2. 无序(Unordered)无序容器通过 hash 表来组织它们的元素,允许通过主键快速地访问元素。
3. 映射(Map)每个元素为一个值(Mapped value)绑定一个键(Key):以主键来标志主要内容等于被映射值的元素。
4. 键唯一(Unique keys)容器中不存在两个元素有相同的主键。
5. 能够感知内存分配器的(Allocator-aware)容器使用一个内存分配器对象来动态地处理它的存储需求。
在 unordered_map 内部,元素不会按任何顺序排序,而是通过主键的 hash 值将元素分组放置到
各个槽(Bucket,也可译成“桶”)中,这样就能通过主键快速地访问各个对应的元素
(平均耗时为一个常量,即时间复杂度为 O(1))。
成员函数
迭代器
begin 返回指向容器起始位置的迭代器(iterator)
end 返回指向容器末尾位置的迭代器
cbegin 返回指向容器起始位置的常迭代器(const_iterator)
cend 返回指向容器末尾位置的常迭代器
Capacity
size 返回有效元素个数
max_size 返回 unordered_map 支持的最大元素个数
empty 判断是否为空
元素访问
operator[] 访问元素
at 访问元素
元素修改
insert 插入元素
erase 删除元素
swap 交换内容
clear 清空内容
emplace 构造及插入一个元素
emplace_hint 按提示构造及插入一个元素
操作
find 通过给定主键查找元素
count 返回匹配给定主键的元素的个数
equal_range 返回值匹配给定搜索值的元素组成的范围
Buckets
bucket_count 返回槽(Bucket)数
max_bucket_count 返回最大槽数
bucket_size 返回槽大小
bucket 返回元素所在槽的序号
load_factor 返回载入因子,即一个元素槽(Bucket)的最大元素数
max_load_factor 返回或设置最大载入因子
rehash 设置槽数
reserve 请求改变容器容量