1.声明及初始化
int main() {
unordered_map<char, int> map1;//声明一个名为map1的字典,键为char类型,值为int类型
unordered_map<char, int> map2 = { {'a',1},{'b',2} };//声明一个名为map2的字典,键为char类型,值为int类型,并初始化两对键值对
}
直接初始化和二维数组初始化一样,使用大括号{},内层键值对也使用大括号{},使用逗号隔开
2.常用API
int main() {
unordered_map<char, int> map = { {'a',1},{'b',2} };//声明一个名为map的字典,键为char类型,值为int类型,并初始化两对键值对
//常用API
map['c'] = 3;//1.增加键值对,{ {'a',1},{'b',2},{'c',3}}
map.erase('a');//2.删除键为‘a’的键值对,{ {'b',2},{'c',3}}
map['c'] = 4;//3.修改键为‘c’的键所对应值为4,{ {'b',2},{'c',4}}
map.count('c');//4.查找键为‘c’的键值对个数,此处为1
map.size();//5.获得键值对数量,此处为2
}
3.遍历元素
通过引用修改键值对,first获得键,second获得值。
int main() {
//创建unordered_map并进行初始化
unordered_map<string, int> map = {
{"apple", 1},
{"banana", 2},
{"cherry", 3}
};
// 遍历unordered_map并修改其值
for (auto& kv : map) { // kv是一个键值对引用
// 修改值,这里简单地将每个值加10
kv.second += 10;
// 打印修改后的键值对
cout << kv.first << ": " << kv.second << endl;
}
// 打印修改后的unordered_map中的所有元素,确认修改生效
cout << "Modified map:" << endl;
for (const auto& kv : map) { // 使用const auto&避免不必要的拷贝
cout << kv.first << ": " << kv.second << endl;
}
}
输出