multiset::emplace

在适当的位置插入构造的元素(不执行复制或移动操作),附带位置提示。

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

参数

参数

说明

args

传递的参数,用于创建一个待插入multiset的元素

返回值

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

备注

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

在建立期间,如果抛出了异常,容器的状态将不会被修改。

示例

// multiset_emplace.cpp
// compile with: /EHsc
#include <set>
#include <string>
#include <iostream>

using namespace std;

template <typename S> void print(const S& s) {
    cout << s.size() << " elements: ";

    for (const auto& p : s) {
        cout << "(" << p << ") ";
    }

    cout << endl;
}

int main()
{
    multiset<string> s1;

    s1.emplace("Anna");
    s1.emplace("Bob");
    s1.emplace("Carmine");

    cout << "multiset modified, now contains ";
    print(s1);
    cout << endl;

    s1.emplace("Bob");

    cout << "multiset modified, now contains ";
    print(s1);
    cout << endl;
}

Output

multiset modified, now contains 3 elements: (Anna) (Bob) (Carmine)

multiset modified, now contains 4 elements: (Anna) (Bob) (Bob) (Carmine)

要求

标头: <set>

命名空间: std

请参见

参考

<set>

set 类

标准模板库