map 容器是 STL 中最常用的容器之一,我们要创建一个 map 容器有三种方式,即直接创建一个 map、创建一个 map 并初始化和通过 map 创建 map。
std::map<key_type, value_type> values;
参数
参数 描述 key_type map 中每个元素的键类型。 value_type map 中每个元素的值类型。 values map 类型的变量。 说明
这样,我们创建了一个空的 map,其键是 key_type 类型,值为 value_type 类型。
STL初始化map详解
语法
std::map<key_type, value_type> values {{key1, val1}, {key2, val2}};
参数
参数 描述 key_type map 中每个元素的键类型。 value_type map 中每个元素的值类型。 key1 map 中第一个元素的键。 val1 map 中第一个元素的值。 values map 类型的变量。 说明
这样,我们创建了一个 map,其中第一个元素的键为 key1 值为 val1、第二个元素的键为 key2 值为 val2。
STL使用map初始化map详解
语法
std::map<key_type, value_type> value2(value1);
参数
参数 描述 key_type map 中每个元素的键类型。 value_type map 中每个元素的值类型。 values map 类型的变量。 说明
我们使用了 value1 初始化了 value2。
案例
创建map
创建一个 map,并初始化
#include <iostream> #include <map> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; map<int, string> map1{{1, "Mon"}, {2, "Thu"}, {3, "Wed"}}; for (auto i = map1.begin(); i != map1.end(); i++) { cout << i->first << " " << i->second << endl; } return 0; }
因为,这里需要使用 C++ 11,因此,我们在 Linux 下使用 g++ 进行编译,具体命令如下:
g++ map.cpp -std=c++11
编译后,我们直接运行生成的二进制文件
a.out
,如下图所示:我们创建了并初始化了一个 map,最后,使用迭代器遍历了所有元素。
使用map初始化map
创建一个 map,并使用 map 初始化 map
#include <iostream> #include <map> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; map<string, string> map1{{"site", "haicoder.net"}, {"name", "haicoder"}, {"age", "110"}}; map<string, string> map2(map1); for (auto i = map2.begin(); i != map2.end(); i++) { cout << i->first << " " << i->second << endl; } return 0; }
编译后,我们直接运行生成的二进制文件
a.out
,如下图所示:我们首先创建了一个 map,接着,使用了 map 创建了另一个 map。
STL map使用总结
map 容器是 STL 中最常用的容器之一,我们要创建一个 map 容器有三种方式,即直接创建一个 map、创建一个 map 并初始化和通过 map 创建 map。