multiset::emplace
Insere um elemento construído no lugar (nenhuma operação de cópia ou movimentação é executada), com uma dica de posicionamento.
template<class... Args>
iterator emplace(
Args&&... args);
Parâmetros
Parâmetro |
Descrição |
args |
Os argumentos encaminhados para construir um elemento a ser inserido em multiset. |
Valor de retorno
Um iterador ao elemento inserido recentemente.
Comentários
Nenhuma referência para os elementos do contêiner for invalidada por essa função, mas pode invalidar todos os iteradores ao contêiner.
Durante a inserção, se uma exceção é gerada, o estado do contêiner não é alterado.
Exemplo
// 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;
}
Saída
multiset modified, now contains 3 elements: (Anna) (Bob) (Carmine)
multiset modified, now contains 4 elements: (Anna) (Bob) (Bob) (Carmine)
Requisitos
defineCabeçalho: <>
Namespace: std