cpp 的unordered_map
时间: 2023-09-13 17:07:39 浏览: 61
`unordered_map`是C++ STL中的一个关联容器,它提供了一种通过键值来快速访问元素的方法。`unordered_map`使用哈希表来实现,因此其插入、查找和删除元素的复杂度都是O(1)的。
`unordered_map`的使用方法与`map`类似,但是由于其使用哈希表实现,因此不保证元素的顺序。例如,对于一个以整数为键值的`unordered_map`,元素的遍历顺序可能是任意的。
下面是一个使用`unordered_map`的例子:
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> umap; // 定义一个string到int的映射
umap["hello"] = 1; // 插入一个键值对
umap["world"] = 2;
std::cout << umap["hello"] << std::endl; // 访问一个键值对的值
std::cout << umap["world"] << std::endl;
if (umap.find("goodbye") == umap.end()) { // 查找一个键值对是否存在
std::cout << "goodbye not found" << std::endl;
}
return 0;
}
```
输出结果为:
```
1
2
goodbye not found
```
可以看到,使用`unordered_map`非常方便,可以快速地进行键值对的插入、访问和查找。同时,由于其底层使用哈希表实现,因此在数据量较大时会比`map`更快。
阅读全文