unordered_map
在头文件 <unordered_map>
中定义,它是一个包含键-值对的关联容器(键是唯一的)。其内部存储没有特定的顺序,值是根据键的哈希值进行存储,计算哈希值的速度是很快的,因此查找、插入、删除都是常数时间。
#include <unordered_map>
初始化
unordered_map<int, int> u = {{2, 4}, {4, 16}};
在尖括号中给出键和值的数据类型,这里都是整型,利用列表的形式可以初始化。
插入修改
如果想插入或修改值可以直接使用中括号下标的形式。
u[3] = 9;
u[4] = 404;
迭代
for (const auto & p: u)
cout << p.first << " " << p.second;
p
可以遍历 u
中所有的键值对,first
表示取出键,second
表示取出值。还可以用以下两种写法,其中的 pair
要包含 <pair
> 头文件。
for(const auto & [key, value] : u )
cout << key << " " << value;
for(const pair<const int, int>& p : u )
cout << p.first << p.second;