Compartir a través de


unordered_map::operator

Encuentra o inserta un elemento con la clave especificada.

Ty& operator[](const Key& keyval);
Ty& operator[](Key&& keyval);

Parámetros

Parámetro

Descripción

Keyval

el valor de clave a encontrar o a insertar.

Valor devuelto

Una referencia al valor de los datos del elemento insertado.

Comentarios

Si el valor de clave de argumento no se encuentra, se incrusta junto con el valor predeterminado del tipo de datos.

operator[] se puede utilizar para insertar elementos en un método de mapa mediante el método m_Key [] = DataValue; donde es el valor DataValue de mapped_type de elemento con un valor de clave de _Key.

Al utilizar operator[] para insertar elementos, la referencia devuelta no indica si una inserción cambia un elemento existente o está creando un nuevo.Las funciones búsqueda y inserción miembro se pueden utilizar para determinar si un elemento con una clave especificada ya exista antes de una inserción.

Ejemplo

// std_tr1__unordered_map__unordered_map_operator_sub.cpp 
// compile with: /EHsc 
#include <unordered_map> 
#include <iostream> 
#include <string>
 
typedef std::unordered_map<char, int> Mymap; 
int main() 
    { 
    Mymap c1; 
 
    c1.insert(Mymap::value_type('a', 1)); 
    c1.insert(Mymap::value_type('b', 2)); 
    c1.insert(Mymap::value_type('c', 3)); 
 
// display contents " [c 3] [b 2] [a 1]" 
    for (Mymap::const_iterator it = c1.begin(); 
        it != c1.end(); ++it) 
        std::cout << " [" << it->first << ", " << it->second << "]"; 
    std::cout << std::endl; 
 
// try to find and fail 
    std::cout << "c1['A'] == " << c1['A'] << std::endl; 
 
// try to find and succeed 
    std::cout << "c1['a'] == " << c1['a'] << std::endl; 
 
// redisplay contents 
    for (Mymap::const_iterator it = c1.begin(); 
        it != c1.end(); ++it) 
        std::cout << " [" << it->first << ", " << it->second << "]"; 
    std::cout << std::endl; 

// insert by moving key
    std::tr1::unordered_map<string, int> c2;
    std::string str("abc");
    std::cout << "c2[std::move(str)] == " << c2[std::move(str)] << std::endl;
    std::cout << "c2["abc"] == " << c2["abc"] << std::endl;
 
    return (0); 
    } 
 
  

Comentarios

La función miembro determina el iterador where como valor devuelto de unordered_map::insert(unordered_map::value_type(keyval, Ty()).(Inserta un elemento con la clave especificada si no existe ningún elemento). A continuación devuelve una referencia a (*where).second.

Requisitos

encabezado: <unordered_map>

espacio de nombres: std

Vea también

Referencia

<unordered_map>

unordered_map Class

unordered_map::find

unordered_map::insert

Otros recursos

miembros de <unordered_map>