📜  C++ STL中的multimap insert()(1)

📅  最后修改于: 2023-12-03 14:59:46.635000             🧑  作者: Mango

C++ STL中的multimap insert()

在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是一个非常好的容器选择。