c++中的哈希容器unordered_map使用示例csdn
时间: 2023-05-02 08:06:42 浏览: 139
C++中的哈希容器unordered_map使用示例
unordered_map是C++ STL库中的一个哈希容器,它能够快速地根据key值查找对应的value,其底层结构是基于哈希表实现的。unordered_map可以用于存储键值对,其中key值用来索引value。由于哈希表的特性,在大多数情况下,unordered_map的查找速度都比其他容器如vector和map更快。
使用unordered_map时需要引入头文件<unordered_map>,并使用命名空间std。下面是一个unordered_map的使用示例:
```cpp
#include <iostream>
#include <unordered_map>
using namespace std;
int main()
{
// 定义并初始化unordered_map
unordered_map<int, string> umap = { { 1, "One" }, { 2, "Two" }, { 3, "Three" } };
// 遍历unordered_map
for (auto itr = umap.begin(); itr != umap.end(); itr++)
{
cout << "Key: " << itr->first << " Value: " << itr->second << endl;
}
// 查找某个key对应的value
int key = 2;
auto itr = umap.find(key);
if (itr != umap.end())
{
cout << "Value of key " << key << " is " << itr->second << endl;
}
// 删除某个key-value对
umap.erase(3);
// 插入一个新的key-value对
umap.insert(make_pair(4, "Four"));
// 修改某个key对应的value
umap[2] = "New Two";
// 输出修改后的unordered_map
for (auto itr = umap.begin(); itr != umap.end(); itr++)
{
cout << "Key: " << itr->first << " Value: " << itr->second << endl;
}
return 0;
}
```
上面的代码首先定义了一个类型为<int, string>的unordered_map,并初始化了三个key-value对。然后使用迭代器遍历了整个容器,并查找了key值为2的value。接着使用erase方法删除了key值为3的键值对。使用insert方法插入了一个新的键值对。最后使用数组形式修改了key值为2的value,并通过迭代器输出了修改后的容器。
总而言之,unordered_map是一个方便快速的哈希容器,具有高效的查找和插入操作。在实际使用中,可以根据不同的需求和特点选择不同的容器。
阅读全文