C++使用unordered_map
时间: 2024-04-24 19:19:04 浏览: 13
C++中的`unordered_map`是一种关联容器,它提供了一种将键和值进行映射的方式。与`map`相比,`unordered_map`的插入、查找和删除操作的平均时间复杂度更低,为O(1)。下面是使用`unordered_map`的一些基本操作:
1. 创建`unordered_map`对象:
```cpp
std::unordered_map<KeyType, ValueType> myMap;
```
2. 插入键值对:
```cpp
myMap.insert(std::make_pair(key, value));
```
或者使用下标操作符:
```cpp
myMap[key] = value;
```
3. 查找元素:
```cpp
auto it = myMap.find(key);
if (it != myMap.end()) {
// 找到了对应的键值对
// 使用 it->first 访问键,it->second 访问值
} else {
// 没有找到对应的键值对
}
```
4. 删除元素:
```cpp
myMap.erase(key);
```
5. 遍历`unordered_map`:
```cpp
for (const auto& pair : myMap) {
// 使用 pair.first 访问键,pair.second 访问值
}
```
6. 获取`unordered_map`的大小:
```cpp
std::size_t size = myMap.size();
```
相关问题
C++ map unordered__map
C++中的map、unordered_map和hash_map都是关联容器,用于存储键值对。它们之间的主要区别在于底层实现方式和查找效率。
在Release模式下,根据引用,unordered_map和hash_map的查找效率要高于map。这是因为unordered_map和hash_map使用的是哈希表来存储元素,可以在常数时间内进行查找操作。而map使用的是红黑树来存储元素,查找操作的时间复杂度是对数级别。
在Debug模式下,根据引用,hash_map的查找效率要高于unordered_map,而unordered_map的查找效率要高于map。这是因为在Debug模式下,编译器通常会增加一些额外的调试信息,导致unordered_map和map的查找效率降低,而hash_map的查找效率相对较高。
综上所述,unordered_map和hash_map在大多数情况下具有较高的查找效率,而map的效率相对较低。
c++自定义unordered_map
unordered_map是C++标准库中的一个容器,用于存储键值对,其中的键是唯一的。在unordered_map中,每个键都会关联到一个值,并且可以通过键来快速查找对应的值。unordered_map是通过哈希表实现的,因此查找操作的平均时间复杂度是常数时间。
unordered_map的定义和使用方法如下所示:
```c++
#include <unordered_map>
#include <iostream>
int main() {
// 创建一个unordered_map
std::unordered_map<std::string, int> myMap;
// 向unordered_map中插入键值对
myMap["apple"] = 1;
myMap["banana"] = 2;
myMap["orange"] = 3;
// 通过键来访问值
std::cout << "Value of apple: " << myMap["apple"] << std::endl;
// 遍历unordered_map
for (const auto& pair : myMap) {
std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
}
return 0;
}
```
这段代码演示了如何创建一个存储字符串和整数的unordered_map,并且向其中插入键值对,然后通过键来访问对应的值,并且遍历unordered_map打印出所有的键值对。