Поделиться через


multiset::emplace

Вставляет элемент построен на месте (отсутствует операции копирования или перемещения), не выполняются с подсказками размещения.

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

Параметры

Параметр

Описание

args

Аргументы переадресованные для построения элемента, который необходимо вставить в multiset.

Возвращаемое значение

Итератор во вновь изменять элемент.

Заметки

Отсутствуют ссылки на элементам-контейнерам аннулированы этой функцией, но она может сделать все итераторы в контейнер.

Во время emplacement, если исключение, не изменяется состояние контейнера.

Пример

// 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

Библиотека стандартных шаблонов