21xrx.com
2025-03-23 03:10:42 Sunday
文章检索 我的文章 写文章
如何初始化C++ map?
2023-06-22 01:00:26 深夜i     99     0
C++ map 初始化

C++标准库中的map是一个关联式容器,它将键和值一一对应。Map的初始化方式有很多种,下面介绍几种常见的方式。

1. 通过默认构造函数初始化

Map类的默认构造函数将返回一个空的map对象。代码如下:

#include <map>
std::map<std::string, int> myMap;  // 默认构造函数

该代码将创建一个空的map对象,其中键类型为std::string,值类型为int。

2. 通过std::initializer_list初始化

C++11新增了std::initializer_list的特性,可以用于通过列表初始化容器。代码如下:

#include <map>
std::map<std::string, int> myMap = { "apple", 2, "orange" };

该代码将创建一个包含三个元素的map对象,其中"apple"将映射到值1,"banana"将映射到值2,"orange"将映射到值3。

3. 通过迭代器区间初始化

除了使用初始化列表外,还可以通过给定的迭代器区间初始化map,代码如下:

#include <map>
#include <vector>
std::vector<std::pair<std::string, int>> vec = { 1, "banana", 3 };
std::map<std::string, int> myMap(vec.begin(), vec.end());

该代码将创建一个包含三个元素的map对象,其键和值与向量vec中的键值对一一对应。

4. 通过拷贝初始化

将一个现有的map对象分配给另一个map对象将使用拷贝构造函数。代码如下:

#include <map>
std::map<std::string, int> anotherMap = myMap;  // 拷贝构造函数

该代码将创建一个新的map对象anotherMap,其键和值与myMap对象相同。

总结

以上是map的初始化方式的简单介绍。需要注意的是,map中的键是唯一的,因此重复的键会被忽略。同时,当在map中插入一个已经存在的键时,map中对应的值将被替换为新值。

  
  

评论区

请求出错了