Espacios de nombres
Variantes
Acciones

std::unordered_set<Key,Hash,KeyEqual,Allocator>::emplace

De cppreference.com
 
 
 
 
template<class... Args>
std::pair<iterator,bool> emplace( Args&&... args);
(desde C++11)

Inserta (emplaza) un nuevo elemento en el contenedor construido en el sitio con los argumentos dados args si no hay un elemento en el contenedor con la clave.

El uso cuidadoso de emplace permite construir el nuevo elemento evitando operaciones innecesarias de copia o movimiento. El constructor del nuevo elemento se llama con exactamente los mismos argumentos que se le suplementaron a emplace, reenviados mediante std::forward<Args>(args).... El elemento puede construirse incluso si ya hay un elemento con la clave en el contenedor, en cuyo caso el elemento recién construido se destruirá inmediatamente..

Si ocurre una redispersión (rehashing) debido a la inserción, se invalidan todos los iteradores. De lo contrario, no se afectan los iteradores. Las referencias no se invalidan. La dispersión vuelve a ocurrir solo si el nuevo número de elementos es mayor que max_load_factor()*bucket_count().

Contenido

[editar]Parámetros

args - Los argumentos a reenviar al constructor del elemento.

[editar]Valor de retorno

Devuelve un par que consta de un iterador para el elemento insertado, o el elemento ya existente si no se realizó ninguna inserción, y un bool que indica si la inserción tuvo lugar (true si la inserción ocurrió, false si no ocurrió).

[editar]Excepciones

Si se lanza una excepción por cualquier operación, esta función no surte efecto.

[editar]Complejidad

Constante amortizada en promedio, en el peor de los casos lineal en el tamaño del contenedor.

[editar]Ejemplo

[editar]Véase también

Construye elementos en el sitio utilizando una pista.
(función miembro pública)[editar]
(C++11)
Inserta elementos o nodos(desde C++17)
(función miembro pública)[editar]
close