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