example - ¿Diferencia entre map[] y map.at en C++?
metodos map c++ (2)
En C ++ 11 map::at
existe (¿quién sabía?).
Lanza una excepción si la clave no existe, find
devuelve aMap.end()
si el elemento no existe, y el operator[]
inicializa un nuevo valor para la clave correspondiente si no existe un valor allí.
¿Cuál es la diferencia en obtener un valor a través de aMap[key]
y aMap.at(key)
en C ++?
Si accede a una clave utilizando el operador de indexación []
que actualmente no forma parte de un mapa, entonces automáticamente agrega una clave para usted . Esta es una gran advertencia, y tome esto en consideración. Por este motivo, prefiero usar el operador de indexación []
para la configuración y .find()
/ .at()
para la búsqueda.
Otra ventaja de usar .at()
sobre []
es el hecho de que puede operar en const std::map
, mientras que []
no lo hace.