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


multimap::emplace

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

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

Параметры

Параметр

Описание

args

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

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

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

Заметки

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

Если исключение во время вставки, то контейнер не будет изменена и исключение, повторно создаются.

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

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