STL multimap使用

STL multimap容器使用教程

multimap 容器提供了多个构造函数用来创建 multimap,我们要创建一个 multimap 容器有三种方式,即直接创建一个 multimap、创建一个 multimap 并初始化和通过 multimap 创建 multimap。

STL创建multimap详解

语法

std::multimap<key_type, value_type> values;

参数

参数 描述
key_type multimap 中每个元素的键类型。
value_type multimap 中每个元素的值类型。
values multimap 类型的变量。

说明

这样,我们创建了一个空的 multimap,其键是 key_type 类型,值为 value_type 类型。

STL初始化multimap详解

语法

std::multimap<key_type, value_type> values {{key1, val1}, {key2, val2}};

参数

参数 描述
key_type multimap 中每个元素的键类型。
value_type multimap 中每个元素的值类型。
key1 multimap 中第一个元素的键。
val1 multimap 中第一个元素的值。
values multimap 类型的变量。

说明

这样,我们创建了一个 multimap,其中第一个元素的键为 key1 值为 val1、第二个元素的键为 key2 值为 val2。

STL使用multimap初始化multimap详解

语法

std::multimap<key_type, value_type> value2(value1);

参数

参数 描述
key_type multimap 中每个元素的键类型。
value_type multimap 中每个元素的值类型。
values multimap 类型的变量。

说明

我们使用了 value1 初始化了 value2。

案例

创建multimap

创建一个 multimap,并初始化

#include <iostream> #include <map> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; multimap<int, string> multimap1{{1, "Mon"}, {2, "Thu"}, {3, "Wed"}, {1, "mon"}}; for (auto i = multimap1.begin(); i != multimap1.end(); i++) { cout << i->first << " " << i->second << endl; } return 0; }

因为,这里需要使用 C++ 11,因此,我们在 Linux 下使用 g++ 进行编译,具体命令如下:

g++ multimap.cpp -std=c++11

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

22_STL multimap容器使用.png

我们创建了并初始化了一个 multimap,最后,使用迭代器遍历了所有元素。

使用multimap初始化multimap

创建一个 multimap,并使用 multimap 初始化 multimap

#include <iostream> #include <map> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; multimap<string, string> multimap1{{"site", "haicoder.net"}, {"name", "haicoder"}, {"age", "110"}}; multimap<string, string> multimap2(multimap1); for (auto i = multimap2.begin(); i != multimap2.end(); i++) { cout << i->first << " " << i->second << endl; } return 0; }

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

23_STL multimap容器使用.png

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

STL multimap使用总结

multimap 容器提供了多个构造函数用来创建 multimap,我们要创建一个 multimap 容器有三种方式,即直接创建一个 multimap、创建一个 multimap 并初始化和通过 multimap 创建 multimap。