C++unordered_map
时间: 2023-09-29 19:02:31 浏览: 106
C++中的哈希容器unordered_map使用示例
unordered_map是C++标准库中的一个容器类,用于实现键值对的哈希表。它提供了快速的插入、查找和删除操作,具有常数时间复杂度(平均情况下)。unordered_map使用哈希函数将键映射到桶中,并使用链表或红黑树处理可能的冲突。
unordered_map的特点包括:
1. 键值对的无序性:unordered_map中的元素没有固定的顺序,而是根据键的哈希值进行组织。
2. 自动去重:unordered_map不允许键重复,每个键只能对应一个值。
3. 动态大小:unordered_map会根据需要自动调整大小,可以动态地插入和删除元素。
4. 快速查找:通过哈希函数,unordered_map可以快速地查找指定键对应的值。
下面是一个使用unordered_map的示例:
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> marks;
// 插入键值对
marks["Alice"] = 95;
marks["Bob"] = 87;
marks["Charlie"] = 92;
// 访问值
std::cout << "Alice's mark: " << marks["Alice"] << std::endl;
// 遍历unordered_map
for (const auto& pair : marks) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
```
输出结果:
```
Alice's mark: 95
Charlie: 92
Bob: 87
```
在上述示例中,我们创建了一个unordered_map对象marks,将学生姓名作为键,考试分数作为值。然后,我们插入了三个键值对,并通过键访问了对应的值。最后,使用范围循环遍历unordered_map,输出每个键值对。
阅读全文