阅读量:3
unordered_map是C++中的关联式容器,它提供了一种通过键值对(key-value)来存储和访问元素的方式。unordered_map使用哈希表来实现,在大多数情况下,它提供了常数时间的元素插入、访问和删除操作。
unordered_map的用法如下:
- 头文件引用:
#include <unordered_map>
- 声明unordered_map对象:
std::unordered_map<Key, T> map;
,其中Key和T分别代表键和值的类型,可以是任意可哈希的类型。 - 插入元素:使用insert()函数来插入键值对,例如:
map.insert(std::make_pair(key, value));
或map[key] = value;
- 访问元素:使用下标操作符
[]
访问元素,例如:map[key]
,如果key不存在,将会自动插入一个默认值。 - 删除元素:使用erase()函数来删除元素,例如:
map.erase(key);
- 查找元素:使用find()函数来查找特定键的元素,例如:
auto it = map.find(key);
,如果找到了,it指向该元素,否则指向map.end()。 - 遍历元素:可以使用迭代器来遍历unordered_map中的元素,例如:
或者使用范围-based for循环:for (auto it = map.begin(); it != map.end(); ++it) { std::cout << "Key: " << it->first << ", Value: " << it->second << std::endl; }
for (const auto& pair : map) { std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl; }
需要注意的是,unordered_map中的元素是无序存储的,所以无法保证元素的顺序。如果需要按特定顺序访问元素,可以考虑使用std::map。