C++ unordered_map容器的成员函数
unordered_map类模板成员函数
成员函数 | 功能 |
---|---|
begin() | 返回指向容器中第一个键值对的正向迭代器 |
end() | 返回指向容器中最后一个键值对之后位置的正向迭代器 |
cbegin() | 和begin()功能相同,只不过在其基础上增加了const属性,即该方法返回的迭代器不能用于修改容器内存储的键值对 |
cend() | 和end()功能相同,只不过在其基础上增加了const属性,即该方法返回的迭代器不能用于修改容器内存储的键值对 |
empty() | 若容器为空,则返回true;否则返回false |
size() | 返回当前容器中存有键值对的个数 |
max_size() | 返回容器所能容纳键值对的最大个数,不同的操作系统,其返回值亦不同 |
operator[key] | 该模板类中重载了[]运算符,其功能是可以像访问数组中元素那样,只要给定某个键值对的键key,就可以获取该键对应的值。注意,如果当前容器中没有以key为键的键值对,则其会使用该键向当前容器中插入一个新键值对 |
at(key) | 返回容器中存储的键key对应的值,如果key不存在,则会抛出out_of_range异常 |
find(key) | 查找以key为键的键值对,如果找到,则返回一个指向该键值对的正向迭代器;反之,则返回一个指向容器最后一个键值对之后位置的迭代器(如同end()返回的迭代器) |
count(key) | 在容器中查找以key为键的键值对的个数 |
equal_range(key) | 返回一个pair对象,其包含2个迭代器,用于表明当前容器中键为key的键值对所在的范围 |
emplace() | 向容器中添加新键值对,效率对比insert()高 |
emplace_hint() | 向容器中添加新键值对,效率对比insert()高 |
insert() | 向容器中添加新键值对 |
erase() | 删除指定键值对 |
clear() | 清空容器,即删除容器中存储的所有键值对 |
swap() | 交换2个容器存储的键值对,前提是必须保证这2个容器的类型完全向相等 |
bucket_count() | 返回当前容器底层存储键值对时,使用桶(一个线性链表代表桶)的数量 |
max_bucket_count() | 返回当前系统中,unordered_map容器底层最多可以使用多少个桶 |
bucket_size(n) | 返回第n个桶中存储键值对的数量 |
bucket(key) | 返回以key为键的键值对所在桶的编号 |
load_factor() | 返回unordered_map容器中当前的负载因子。负载因子,指的是当前容器中存储键值对的数量(size())和使用桶的数量(bucket_count())的比值,即load_factor() = size() / bucket_count() |
max_load_factor() | 返回或者设置当前容器的负载因子 |
rehash(n) | 将当前容器底层使用桶的数量设置为n |
reserve() | 将存储桶的数量(也就是bucket_count())设置为至少容纳count个元素(不超过负载因子)所需的数量,并重新整理容器 |
hash_function() | 返回当前容器使用的哈希函数对象 |