目录
Unordered_Map 容器
0. Unordered_Map 容器介绍
头文件
// 头文件
#include <unordered_map>
- Unordered_Map 是一个无序关联容器,用于存储键值对,其中键是唯一的。
- Unordered_Map 使用哈希表实现,查找、插入和删除的平均时间复杂度为 O(1)。
- 与 Map 不同,Unordered_Map 不进行键的排序。
1. Unordered_Map 容器的构造
默认构造
// Unordered_Map 容器(无序关联容器)
unordered_map<KeyType, ValueType> umap;
拷贝构造和赋值
// Unordered_Map(const Unordered_Map &otherUnordered_Map); // 拷贝构造函数
unordered_map<KeyType, ValueType> umap_copy(otherUnordered_Map);
// Unordered_Map& operator=(const Unordered_Map &otherUnordered_Map); // 等号运算符重载
unordered_map<KeyType, ValueType> umap1;
unordered_map<KeyType, ValueType> umap2;
umap1 = umap2;
2. Unordered_Map 容器的插入与删除
umap[key] = value; // 插入或更新键值对
umap.begin(); // 返回容器中第一个元素的迭代器
umap.end(); // 返回容器中最后一个元素的迭代器
umap.erase(key); // 删除键为 key 的元素
umap.erase(iter); // 删除迭代器 iter 所指向的元素
umap.erase(begin_iter, end_iter); // 删除区间 [begin_iter, end_iter) 内的元素
3. Unordered_Map 容器的大小
umap.size(); // 返回 Unordered_Map 容器中键值对的个数
umap.empty(); // 判断容器是否为空
4. Unordered_Map 容器的查找
umap.find(key); // 查找键为 key 的元素,返回指向该元素的迭代器,如果找不到返回 umap.end()
umap.count(key); // 返回容器中键为 key 的元素的个数,对于 Unordered_Map 容器来说不是 1 就是 0
5. Unordered_Map 容器的遍历
for (const auto& pair : umap) {
// 处理每个键值对
// pair.first 表示键,pair.second 表示值
}
这些操作使得 Unordered_Map 成为一个高效的容器,适用于需要快速查找、插入和删除键值对的场景。由于其无序特性,适用于不关心键的顺序的情况。