metodos example c++ c++11 stl

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.