📜  在 C++ 中初始化 unordered_map 的不同方法(1)

📅  最后修改于: 2023-12-03 15:23:07.448000             🧑  作者: Mango

在 C++ 中初始化 unordered_map 的不同方法

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 函数

可以使用 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 的方法,开发者可以根据实际情况选择使用合适的方法。