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