multiset::emplace
Inserisce un elemento costruito in locale (senza che vengano eseguite operazioni di copia o di spostamento), con un suggerimento di posizione.
template<class... Args>
iterator emplace(
Args&&... args);
Parametri
Parametro |
Descrizione |
args |
Gli argomenti passati per costruire un elemento da inserire nel multiset. |
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.
Durante il collocamento, se viene generata un'eccezione, lo stato del contenitore non viene modificato.
Esempio
// 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;
}
Output
multiset modified, now contains 3 elements: (Anna) (Bob) (Carmine)
multiset modified, now contains 4 elements: (Anna) (Bob) (Bob) (Carmine)
Requisiti
Intestazione: <set>
Spazio dei nomi: std