📅  最后修改于: 2023-12-03 14:59:46.635000             🧑  作者: Mango
在C++ STL中,multimap是一种关联式容器,它存储了一组经过排序的键/值对。multimap中的每个键可以对应多个值,这就意味着它允许存在多个具有相同键的元素。multimap中的insert()函数用于向multimap中插入新的元素。
multimap的insert()函数有以下两种语法:
iterator insert (const value_type& val);
void insert (InputIterator first, InputIterator last);
第一种语法用于将一个键/值对插入到multimap中,并返回一个指向插入后元素的迭代器。value_type表示multimap中存储的每个元素类型。例如,如果multimap存储的是一组int/float键值对,则value_type就是pair<int,float>。
第二种语法用于将一个范围内的数据插入到multimap中。first和last表示要插入的范围——从first开始,直到last为止(不包括last本身)。这个范围可以是具有相同类型的任意类型。例如,可以将一个vector容器中的所有元素插入到multimap中。
下面我们来看一个实例,演示如何使用multimap的insert()函数:
#include <iostream>
#include <map>
using namespace std;
int main()
{
multimap<int, string> myMultimap;
myMultimap.insert(pair<int, string>(1, "John"));
myMultimap.insert(pair<int, string>(2, "Jane"));
myMultimap.insert(pair<int, string>(3, "Mike"));
myMultimap.insert(pair<int, string>(2, "Tom"));
multimap<int, string>::iterator itr;
cout << "Multimap contains the following elements:" << endl;
for (itr = myMultimap.begin(); itr != myMultimap.end(); itr++)
{
cout << itr->first << " => " << itr->second << endl;
}
return 0;
}
在上面的示例中,我们创建了一个multimap,在其中插入了四个键/值对。其中第二个键2重复了两次,同时对应不同的值。最后,我们遍历了multimap中的每个元素,并将其输出到控制台上。
上述程序的输出结果如下:
Multimap contains the following elements:
1 => John
2 => Jane
2 => Tom
3 => Mike
multimap的insert()函数是C++ STL中非常有用的一个函数。它允许向multimap中插入单个或多个元素,并且具有很好的可读性和灵活性。如果你需要管理一组具有相同键的值,则multimap是一个非常好的容器选择。