unordered_map
是 C++ STL(标准模板库)中的一个关联容器,它实现了一个哈希表,允许用户以键值对的形式存储数据。与map
不同的是,unordered_map
不保证元素的顺序,它提供平均常数时间复杂度的查找、插入和删除操作。
以下是 unordered_map
的一些主要用法和示例:
1. 引入头文件
首先,你需要包含头文件:
#include <unordered_map>
2. 声明 unordered_map
你可以通过以下方式声明一个 unordered_map
:
unordered_map<int,string> myMap; // 键为 int,值为 string
3. 插入元素
使用 insert
方法或通过 []
操作符来插入元素。
myMap.insert({1, "Apple"});
myMap[2] = "Banana";
4. 查找元素
可以使用 find
方法和 []
操作符来查找元素:
auto it = myMap.find(1);
if (it != myMap.end()) {
cout << "Key 1: " << it->second << endl;
}
cout << "Key 2: " << myMap[2] << endl;
5. 删除元素
使用 erase
方法来删除元素:
myMap.erase(1); // 删除键为 1 的元素
6. 遍历 unordered_map
使用范围-based for 循环遍历 unordered_map
:
for (const auto& pair : myMap) {
cout << "Key: " << pair.first << ", Value: " << pair.second << endl;
}
7. 检查键的存在性
使用 count
方法可以检查特定键是否存在:
if (myMap.count(2) > 0) {
cout << "Key 2 exists." << endl;
} else {
cout << "Key 2 does not exist." << endl;
}
8. 大小和清空
获取 unordered_map
的大小和清空内容:
cout << "Size: " << myMap.size() << endl;
myMap.clear(); // 清空所有元素