Udostępnij za pośrednictwem


multimap::emplace

Wstawia element skonstruowany w miejscu (bez wykonania żadnej czynności kopiowania ani przenoszenia).

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

Parametry

Parametr

Opis

args

Argumenty przekazywane do konstruowania elementu do wstawienia do multimap.

Wartość zwracana

Iterator do nowo wstawionego elementu.

Uwagi

Żadne odwołania do elementów kontenera nie są unieważniane przez tę funkcję, ale może ona unieważnić wszystkie iteratory do kontenera.

Jeśli wyjątek został zgłoszony podczas wstawiania, kontener pozostaje niezmieniony i wyjątek zostaje zgłoszony ponownie.

value_type elementu jest parą, dzięki czemu wartość elementu będzie uporządkowaną parą z pierwszym składnikiem równym wartości klucza i drugim składnikiem równym wartości danych elementu.

Przykład

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

Dane wyjściowe

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)

Wymagania

Nagłówek: <map>

Przestrzeń nazw: std

Zobacz też

Informacje

<map>

multimap — Klasa

Standardowa biblioteka szablonów