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