C++ unordered_map
时间: 2023-11-06 10:05:19 浏览: 66
C++的unordered_map是一种无序的关联容器,它存储键值对,并且可以快速地通过键来访问对应的值。它基于哈希表的数据结构实现,因此插入、删除和查找操作的平均时间复杂度为常数时间。unordered_map的特点是键是唯一的,每个键最多只能对应一个值。在引用中提到的三个例子中,分别创建了三个不同的unordered_map对象,分别用来存储不同类型的键值对。其中,键的类型是std::string,值的类型可以根据需要自定义。
相关问题
c++ unordered_map
std::unordered_map是C++11中提供的一个哈希表容器,它可以存储键值对,并根据键的哈希值进行快速查找。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [C++ unordered_map 和 unordered_set 常用函数](https://blog.csdn.net/qq_40876059/article/details/123699886)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
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,输出每个键值对。
阅读全文