STL map使用

STL map容器使用教程

map 容器是 STL 中最常用的容器之一,我们要创建一个 map 容器有三种方式,即直接创建一个 map、创建一个 map 并初始化和通过 map 创建 map。

STL创建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,如下图所示:

04_STL map使用.png

我们创建了并初始化了一个 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,如下图所示:

05_STL map使用.png

我们首先创建了一个 map,接着,使用了 map 创建了另一个 map。

STL map使用总结

map 容器是 STL 中最常用的容器之一,我们要创建一个 map 容器有三种方式,即直接创建一个 map、创建一个 map 并初始化和通过 map 创建 map。