在C++中,标准库提供了unordered_map
容器,它是一个哈希表实现的关联容器,可以使用键-值对来存储和检索数据。与map
容器相比,unordered_map
的访问速度更快,因为它使用哈希表进行存储和检索操作,而不是红黑树。
使用unordered_map
时,需要包含头文件<unordered_map>
。下面是一个简单的示例代码,展示了如何使用unordered_map
来存储和检索键值对:
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
unordered_map<string, int> myMap;
// 添加键值对
myMap["one"] = 1;
myMap["two"] = 2;
myMap["three"] = 3;
// 检索键值对
cout << myMap["one"] << endl; // 输出1
cout << myMap["four"] << endl; // 输出0,因为四不存在于哈希表中,返回默认值0
// 遍历哈希表
for (auto &pair : myMap) {
cout << pair.first << ": " << pair.second << endl;
}
return 0;
}
在这个例子中,我们使用unordered_map
来创建一个键类型为string
,值类型为int
的哈希表。然后我们向哈希表中添加了一些键值对,使用[]
操作符来检索键值对。如果某个键不存在于哈希表中,[]
操作符将自动添加该键并将其值初始化为默认值0。我们还使用了一个for
循环来遍历哈希表中的所有键值对,并输出它们的值。