C++中unordered_map是什么
时间: 2023-08-27 13:16:27 浏览: 117
C++11 unordered_map与map(插入,遍历,Find)效率对比。
unordered_map 是 C++ 中 STL 库中的一种数据结构,它是一种哈希表,能够高效地存储键-值对。使用 unordered_map 需要包含 <unordered_map> 头文件。
下面是一个简单的例子:
```
#include <unordered_map>
#include <string>
int main() {
std::unordered_map<std::string, int> myMap;
myMap["hello"] = 1;
myMap["world"] = 2;
std::cout << myMap["hello"] << std::endl; // 输出 1
std::cout << myMap["world"] << std::endl; // 输出 2
return 0;
}
```
unordered_map 也可以使用迭代器遍历,支持常用的 STL 方法,如 find, count, size, clear 等。
常用的构造函数有:
- `unordered_map<Key, T> map;` : 创建一个空的 unordered_map,默认桶的数量为0。
- `unordered_map<Key, T> map(n);` : 创建一个空的 unordered_map,预计容量为n。
- `unordered_map<Key, T> map(n, hasher);` : 创建一个空的 unordered_map,预计容量为n,并使用给定的 hasher 函数。
- `unordered_map<Key, T> map(n, hasher, key_equal);` : 创建一个空的 unordered_map,预计容量为n,并使用给定的 hasher 和 key_equal 函数。
阅读全文