unordered_map数据结构
时间: 2024-05-04 14:14:37 浏览: 89
数据 结构
3星 · 编辑精心推荐
unordered_map是C++标准库中的一个关联容器,它提供了一种键值对的映射关系。unordered_map使用哈希表来实现,因此可以在常数时间内进行插入、删除和查找操作。下面是unordered_map的一些特点和用法:
1. 特点:
- 键值对的存储:unordered_map中的每个元素都是一个键值对,其中键是唯一的,而值可以重复。
- 哈希表实现:unordered_map使用哈希表来存储键值对,因此插入、删除和查找操作的平均时间复杂度为O(1)。
- 无序性:unordered_map中的元素是无序的,即元素的顺序与插入的顺序无关。
2. 使用方法:
- 头文件:使用unordered_map需要包含头文件<unordered_map>。
- 定义和初始化:可以使用以下方式定义和初始化unordered_map对象:
```cpp
std::unordered_map<KeyType, ValueType> myMap; // 默认构造函数
std::unordered_map<KeyType, ValueType> myMap = { {key1, value1}, {key2, value2}, ... }; // 初始化列表
```
- 插入元素:可以使用insert()函数或者下标操作符[]来插入元素:
```cpp
myMap.insert(std::make_pair(key, value)); // 使用insert()函数插入元素
myMap[key] = value; // 使用下标操作符[]插入元素
```
- 删除元素:可以使用erase()函数来删除指定键的元素:
```cpp
myMap.erase(key); // 删除指定键的元素
```
- 查找元素:可以使用find()函数来查找指定键的元素:
```cpp
auto it = myMap.find(key); // 查找指定键的元素,返回一个迭代器
if (it != myMap.end()) {
// 找到了指定键的元素
// 使用it->first访问键,使用it->second访问值
}
```
阅读全文