Namespaces
Variants

std::unordered_multiset<Key,Hash,KeyEqual,Allocator>:: insert

From cppreference.net
iterator insert ( const value_type & value ) ;
(1) (desde C++11)
iterator insert ( value_type && value ) ;
(2) (desde C++11)
iterator insert ( const_iterator hint, const value_type & value ) ;
(3) (desde C++11)
iterator insert ( const_iterator hint, value_type && value ) ;
(4) (desde C++11)
template < class InputIt >
void insert ( InputIt first, InputIt last ) ;
(5) (desde C++11)
void insert ( std:: initializer_list < value_type > ilist ) ;
(6) (desde C++11)
iterator insert ( node_type && nh ) ;
(7) (desde C++17)
iterator insert ( const_iterator hint, node_type && nh ) ;
(8) (desde C++17)

Inserta elemento(s) en el contenedor.

1,2) Inserta value .
3,4) Inserta value , utilizando hint como sugerencia no vinculante sobre dónde debería comenzar la búsqueda.
5) Inserta elementos del rango [ first , last ) .
6) Inserta elementos desde la lista de inicialización ilist .
7) Si nh es un node handle vacío, no hace nada. De lo contrario, inserta el elemento poseído por nh en el contenedor y devuelve un iterador que apunta al elemento insertado. El comportamiento es indefinido si nh no está vacío y get_allocator ( ) ! = nh. get_allocator ( ) .
8) Si nh es un node handle vacío, no hace nada y retorna el iterador final. De lo contrario, inserta el elemento poseído por nh en el contenedor, y retorna el iterador que apunta al elemento con clave equivalente a nh. key ( ) . hint se utiliza como sugerencia no vinculante sobre dónde debería comenzar la búsqueda. El comportamiento es indefinido si nh no está vacío y get_allocator ( ) ! = nh. get_allocator ( ) .

Si después de la operación el nuevo número de elementos es mayor que el antiguo max_load_factor() * bucket_count() se produce una redistribución.
Si ocurre redistribución (debido a la inserción), todos los iteradores quedan invalidados. En caso contrario (sin redistribución), los iteradores no se invalidan. Si la inserción es exitosa, los punteros y referencias al elemento obtenidos mientras se mantiene en el manejador de nodo se invalidan, y los punteros y referencias obtenidos para ese elemento antes de ser extraído pasan a ser válidos. (desde C++17)

Contenidos

Parámetros

hint - iterador, utilizado como sugerencia sobre dónde insertar el contenido
value - valor del elemento a insertar
first, last - el par de iteradores que define el rango fuente de elementos a insertar
ilist - lista de inicializadores de la cual insertar los valores
nh - un manejador de nodo compatible
Requisitos de tipo
-
InputIt debe cumplir con los requisitos de LegacyInputIterator .

Valor de retorno

1-4) Un iterador al elemento insertado.
5,6) (ninguno)
7,8) Iterador final si nh estaba vacío, iterador que apunta al elemento insertado en caso contrario.

Excepciones

1-4) Si se lanza una excepción por cualquier operación, la inserción no tiene efecto.

Complejidad

1-4) Caso promedio: O(1) , caso peor O(size()) .
5,6) Caso promedio: O(N) , donde N es el número de elementos a insertar. Caso peor: O(N * size() + N) .
7,8) Caso promedio: O(1) , caso peor O(size()) .

Ejemplo

Véase también

construye elemento in-situ
(función miembro pública)
construye elementos in-situ usando una pista
(función miembro pública)
crea un std::insert_iterator del tipo inferido del argumento
(plantilla de función)