multiset::emplace
Wstawia element skonstruowany w miejscu (bez wykonania żadnej czynności kopiowania ani przenoszenia) ze wskazówką położenia.
template<class... Args>
iterator emplace(
Args&&... args);
Parametry
Parametr |
Opis |
args |
Argumenty przekazywane do konstruowania elementu do wstawienia do zbioru multiset. |
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.
Podczas umieszczenia, jeśli zgłoszono wyjątek, stan kontenera nie jest modyfikowany.
Przykład
// multiset_emplace.cpp
// compile with: /EHsc
#include <set>
#include <string>
#include <iostream>
using namespace std;
template <typename S> void print(const S& s) {
cout << s.size() << " elements: ";
for (const auto& p : s) {
cout << "(" << p << ") ";
}
cout << endl;
}
int main()
{
multiset<string> s1;
s1.emplace("Anna");
s1.emplace("Bob");
s1.emplace("Carmine");
cout << "multiset modified, now contains ";
print(s1);
cout << endl;
s1.emplace("Bob");
cout << "multiset modified, now contains ";
print(s1);
cout << endl;
}
Dane wyjściowe
multiset modified, now contains 3 elements: (Anna) (Bob) (Carmine)
multiset modified, now contains 4 elements: (Anna) (Bob) (Bob) (Carmine)
Wymagania
Nagłówek: <set>
Przestrzeń nazw: std