📅  最后修改于: 2023-12-03 15:23:07.448000             🧑  作者: Mango
unordered_map 是 C++ STL 中的关联容器之一,用于存储键值对,基于哈希表实现。初始化 unordered_map 的方法有多种,下面将介绍其中的几种。
可以通过大括号 {} 直接初始化 unordered_map,如下:
unordered_map<int, string> myMap {{1, "one"}, {2, "two"}, {3, "three"}};
这将初始化一个包含三个键值对的 unordered_map,分别为 {1: "one"},{2: "two"} 和 {3: "three"}。
可以使用 insert 函数来向 unordered_map 中添加键值对,如下:
unordered_map<int, string> myMap;
myMap.insert(make_pair(1, "one"));
myMap.insert(make_pair(2, "two"));
myMap.insert(make_pair(3, "three"));
这样也会初始化一个包含三个键值对的 unordered_map,与直接初始化的方式相同。
可以使用下标操作符 [] 来向 unordered_map 中添加键值对,如下:
unordered_map<int, string> myMap;
myMap[1] = "one";
myMap[2] = "two";
myMap[3] = "three";
这样也会初始化一个包含三个键值对的 unordered_map,与直接初始化的方式相同。
需要注意的是,如果使用下标操作符插入重复的键,会覆盖原有的值。
unordered_map 的值类型默认为默认构造函数构造出来的对象。可以直接通过 unordered_map 的模板参数指定值的默认值,如下:
unordered_map<int, string> myMap_withDefaultValues(3);//myMap_withDefaultValues默认初始化大小,并存储默认值
此时,myMap_withDefaultValues 会包含三个键值对,值均为指定类型的默认构造函数构造出来的对象。
以上是几种常见的初始化 unordered_map 的方法,开发者可以根据实际情况选择使用合适的方法。