Descrição
Ele insere um novo elemento no conjunto.
Declaração
A seguir estão as maneiras em que std :: set :: emplace funciona em várias versões C ++.
C ++ 98
template <class... Args>
pair<iterator,bool> emplace (Args&&... args);
C ++ 11
template <class... Args>
pair<iterator,bool> emplace (Args&&... args);
Valor de retorno
Ele retorna um par de um iterador para o elemento recém-inserido e um valor true.
Exceções
Se uma exceção for lançada, não haverá mudanças no contêiner.
Complexidade de tempo
Depende do tamanho do contêiner.
Exemplo
O exemplo a seguir mostra o uso de std :: set :: emplace.
#include <iostream>
#include <set>
#include <string>
int main () {
std::set<std::string> myset;
myset.emplace("foo");
myset.emplace("bar");
auto ret = myset.emplace("bar");
if (!ret.second) std::cout << "bar already exists in myset\n";
return 0;
}
O programa acima será compilado e executado corretamente.
bar already exists in myset