multimap::emplace

在适当位置插入构建元素 (不执行复制或移动操作) 。

template<class... Args>
   iterator emplace(
      Args&&... args);

参数

参数

说明

args

传递的参数,用于创建一个待插入多重映射的元素

返回值

指向新插入元素的迭代器。

备注

此函数的容器元素的引用是无效的,但是,它可能使容器内的所有迭代器都无效。

如果在插入时异常被抛出,容器不会更改并且异常被再抛出。

value_type 一个元素是一对, 使元素值为一个有序对,第一个组件与键值相同和第二组件与元素数据值相同。

示例

// multimap_emplace.cpp
// compile with: /EHsc
#include <map>
#include <string>
#include <iostream>

using namespace std;

template <typename M> void print(const M& m) {
    cout << m.size() << " elements: " << endl;

    for (const auto& p : m) {
        cout << "(" << p.first <<  "," << p.second << ") ";
    }

    cout << endl;
}

int main()
{
    multimap<string, string> m1;

    m1.emplace("Anna", "Accounting");
    m1.emplace("Bob", "Accounting");
    m1.emplace("Carmine", "Engineering");

    cout << "multimap modified, now contains ";
    print(m1);
    cout << endl;

    m1.emplace("Bob", "Engineering");

    cout << "multimap modified, now contains ";
    print(m1);
    cout << endl;
}

Output

multimap modified, now contains 3 elements:
(Anna,Accounting) (Bob,Accounting) (Carmine,Engineering)

multimap modified, now contains 4 elements:
(Anna,Accounting) (Bob,Accounting) (Bob,Engineering) (Carmine,Engineering)

要求

标头: <map>

命名空间: std

请参见

参考

<map>

multimap 类

标准模板库