Condividi tramite


multimap::emplace

Inserisce un elemento costruito in locale (non viene effettuata alcuna operazione di copia o di spostamento).

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

Parametri

Parametro

Descrizione

args

Gli argomenti passati per costruire un elemento da inserire nella multimap.

Valore restituito

Un iteratore all'elemento appena inserito.

Note

Nessun riferimento agli elementi contenitore viene invalidato da questa funzione, ma può invalidare tutti gli iteratori al contenitore.

Se viene generata un'eccezione durante l'inserimento, il contenitore resta invariato e l'eccezione viene rilanciata.

Il value_type di un elemento è una coppia, tale che il valore di un elemento sarà una coppia ordinata con il primo componente uguale al valore della chiave e il secondo uguale al valore del dato dell'elemento.

Esempio

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

Requisiti

Intestazione: <map>

Spazio dei nomi: std

Vedere anche

Riferimenti

<map>

Classe multimap

Libreria di modelli standard