multimap 容器提供了多个构造函数用来创建 multimap,我们要创建一个 multimap 容器有三种方式,即直接创建一个 multimap、创建一个 multimap 并初始化和通过 multimap 创建 multimap。
std::multimap<key_type, value_type> values;
参数 | 描述 |
---|---|
key_type | multimap 中每个元素的键类型。 |
value_type | multimap 中每个元素的值类型。 |
values | multimap 类型的变量。 |
这样,我们创建了一个空的 multimap,其键是 key_type 类型,值为 value_type 类型。
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。
std::multimap<key_type, value_type> value2(value1);
参数 | 描述 |
---|---|
key_type | multimap 中每个元素的键类型。 |
value_type | multimap 中每个元素的值类型。 |
values | multimap 类型的变量。 |
我们使用了 value1 初始化了 value2。
创建一个 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
,如下图所示:
我们创建了并初始化了一个 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
,如下图所示:
我们首先创建了一个 multimap,接着,使用了 multimap 创建了另一个 multimap。
multimap 容器提供了多个构造函数用来创建 multimap,我们要创建一个 multimap 容器有三种方式,即直接创建一个 multimap、创建一个 multimap 并初始化和通过 multimap 创建 multimap。