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

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

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

映射(Map)是一种关联容器,可以将键映射到值。一个键只能在Map中出现一次,但是你可以对不同键使用相同的值。在C++中,有多种方法可以初始化映射,这篇文章将为大家介绍其中的几种方法。

初始化空的映射

首先,我们可以用默认构造函数初始化一个空映射:

#include <map>

std::map<int, std::string> myMap;

这会构造一个名为myMap的空映射,这个映射使用整数作为键,使用字符串作为值。

从现有数组初始化映射

我们可以使用一个数组中的元素来初始化一个映射,例如:

#include <map>
#include <string>

const char* arr[] = { "apple", "orange", "banana" };

std::map<std::string, int> myMap;

for (int i = 0; i < 3; ++i) {
  myMap[arr[i]] = i + 1;
}

这会构造一个名为myMap的映射,这个映射使用字符串作为键,使用整数作为值。在这个例子中,我们使用for循环遍历了数组arr中的元素,将它们依次加入映射中。在这个例子中,键是arr中的字符串,值是该字符串在arr中的下标加上1。

使用列表初始化

我们可以使用花括号初始化列表来初始化一个映射。例如:

#include <map>

std::map<std::string, int> myMap = {
  {"apple", 1},
  {"orange", 2},
  {"banana", 3}
};

这会构造一个名为myMap的映射,这个映射使用字符串作为键,使用整数作为值。在这个例子中,我们使用了3个键值对来初始化映射。

使用insert()函数

我们也可以使用insert()函数来向映射中添加元素。例如:

#include <map>

std::map<int, std::string> myMap;

myMap.insert(std::pair<int, std::string>(1, "apple"));
myMap.insert(std::make_pair(2, "orange"));
myMap.insert({3, "banana"});

这会构造一个名为myMap的映射,这个映射使用整数作为键,使用字符串作为值。在这个例子中,我们使用了三种方法来向映射中添加元素,分别是使用std::pair类型,使用std::make_pair()函数,以及使用花括号初始化列表的方式。

以上是C++中几种常见的初始化映射的方式,程序员可以根据自己的需求来选择不同的方式。