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