Share via


unordered_map::insert

Inserta un elemento o un intervalo de elementos en un unordered_map.

// (1) single element pair<iterator, bool> insert(     const value_type& Val );   // (2) single element, perfect forwarded template<class ValTy> pair<iterator, bool> insert(     ValTy&& Val );  // (3) single element with hint iterator insert(     const_iterator Where,     const value_type& Val );   // (4) single element, perfect forwarded, with hint template<class ValTy> iterator insert(     const_iterator Where,     ValTy&& Val );  // (5) range  template<class InputIterator>  void insert(     InputIterator First,     InputIterator Last );   // (6) initializer list void insert(     initializer_list<value_type> IList ); 

Parámetros

Parámetro

Descripción

Val

Valor de un elemento que se va a insertar en el unordered_map a menos que ya contenga un elemento cuya clave se ordena de forma equivalente.

Where

Lugar donde se va a iniciar la búsqueda del punto de inserción correcto.

ValTy

Parámetro de plantilla que especifica el tipo de argumento que el unordered_map puede utilizar para construir un elemento de value_type y realiza un reenvío directo de Val como argumento.

First

Posición del primer elemento que se va a copiar.

Last

Posición situada más allá del último elemento que se va a copiar.

InputIterator

Argumento de la función de plantilla que cumple los requisitos de un iterador de entrada que apunta a elementos de un tipo que se puede utilizar para crear objetos value_type.

IList

initializer_list de la que se van a copiar los elementos.

Valor devuelto

Las funciones miembro de un solo elemento, (1) y (2), devuelven un pair cuyo componente bool es true si se realizó una inserción, y false si el unordered_map ya contenía un elemento cuya clave tenía un valor equivalente en la ordenación. El componente de iterador del par de valor devuelto apunta al elemento recién insertado si el componente bool es true, o al elemento existente si el componente bool es false.

Las funciones miembro de un solo elemento con sugerencia, (3) y (4), devuelven un iterador que apunta a la posición donde se insertó el nuevo elemento en el unordered_map o, si ya existe un elemento con una clave equivalente, al elemento existente.

Comentarios

Esta función no invalida ningún iterador, puntero o referencia.

Durante la inserción de un solo elemento, si se produce una excepción pero no se realiza en la función hash del contenedor, no se modifica el estado del contenedor. Si la excepción se produce en la función hash, el resultado es indefinido. Durante la inserción de varios elementos, si se produce una excepción, el contenedor se deja en un estado sin especificar pero válido.

Para tener acceso al componente de iterador de un pair pr devuelto por las funciones miembro de un solo elemento, use pr.first; para desreferenciar el iterador dentro del par devuelto, use *pr.first, especificando un elemento. Para tener acceso al componente bool, utilice pr.second. Para obtener un ejemplo, vea el código de ejemplo que se muestra más adelante en este artículo.

El objeto value_type de un contenedor es un typedef que pertenece al contenedor y, para una asignación, map<K, V>::value_type es de tipo pair<const K, V>. El valor de un elemento es un par ordenado en el que el primer componente es igual al valor de clave y el segundo componente es igual al valor de datos del elemento.

La función miembro de intervalo (5) inserta la secuencia de valores de elemento en un unordered_map que corresponde a cada elemento direccionado por un iterador en el intervalo [First, Last); por lo tanto, Last no se inserta. La función miembro de contenedor end() hace referencia a la posición situada justo después del último elemento del contenedor; por ejemplo, la instrucción m.insert(v.begin(), v.end()); intenta insertar todos los elementos de v en m. Solo se insertan los elementos que tienen valores únicos en el intervalo; se omiten los duplicados. Para observar qué elementos se rechazan, utilice las versiones de un solo elemento de insert.

La función miembro de lista de inicializadores (6) usa una initializer_list para copiar elementos en el unordered_map.

Para la inserción de un elemento construido en contexto (es decir, no se realiza ninguna operación de copia o movimiento), vea unordered_map::emplace y unordered_map::emplace_hint.

Para obtener un ejemplo de código, vea map::insert.

Requisitos

Encabezado: <unordered_map>

Espacio de nombres: std

Vea también

Referencia

<unordered_map>

unordered_map (Clase)

Biblioteca de plantillas estándar