unordered_map的使用方法
时间: 2023-10-28 19:58:56 浏览: 172
C++中的哈希容器unordered_map使用示例
unordered_map是C++标准库中的一个关联容器,它提供了一种高效的键值对存储方式,可以根据键快速查找值。下面是使用unordered_map的基本方法:
1. 包含头文件:首先,你需要包含头文件 `#include <unordered_map>`。
2. 定义和初始化:可以使用下面的语法定义和初始化一个unordered_map对象:
```cpp
std::unordered_map<KeyType, ValueType> myMap;
```
这里的`KeyType`和`ValueType`分别指定了键和值的类型。
你也可以使用初始化列表来初始化unordered_map:
```cpp
std::unordered_map<int, std::string> myMap = { {1, "apple"}, {2, "banana"}, {3, "cherry"} };
```
3. 插入元素:可以使用`insert()`或`emplace()`函数向unordered_map中插入新的键值对。
```cpp
myMap.insert(std::make_pair(key, value));
```
或者使用以下语法:
```cpp
myMap.emplace(key, value);
```
4. 访问元素:可以通过键来访问unordered_map中的值。使用`at()`函数可以获取特定键的值,但要注意如果键不存在,会抛出`std::out_of_range`异常。另外,还可以使用下标运算符 `[]` 来访问元素,如果键不存在,则会自动插入一个新的键值对并返回对应的值。
```cpp
ValueType value = myMap.at(key);
```
或者:
```cpp
ValueType value = myMap[key];
```
5. 删除元素:可以使用`erase()`函数来删除unordered_map中的元素,指定要删除的键。
```cpp
myMap.erase(key);
```
6. 遍历unordered_map:可以使用迭代器来遍历unordered_map中的键值对。
```cpp
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
KeyType key = it->first;
ValueType value = it->second;
// 对键值对进行操作
}
```
这些是unordered_map的基本使用方法,你可以根据自己的需求来选择适合的操作。
阅读全文