¿Cuál es la diferencia al obtener un valor a través de aMap[key]
y aMap.at(key)
en C++?Diferencia entre el mapa [] y map.at en C++?
16
A
Respuesta
14
En C++ 11 map::at
existe (¿quién sabe?).
Se lanza una excepción si no existe la clave, find
vuelve aMap.end()
si el elemento no existe, y operator[]
valor inicializa un nuevo valor de la clave correspondiente, si ningún valor existe allí.
28
Si tiene acceso a una clave mediante el operador de indexación []
que no está en una parte de un mapa, entonces añade automáticamente una clave para usted. Esta es una gran advertencia, y tome esto en consideración. Por esta razón, 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 funcionar en una const std::map
, mientras que []
no lo hará.
Cuestiones relacionadas
- 1. Diferencia entre mapa y dict
- 2. diferencia entre el mapa y cada
- 3. Diferencia entre el mapa y coleccionar en Ruby?
- 4. Diferencia entre Tenedor/Unir y Mapa/Reducir
- 5. Diferencia en el rendimiento entre el mapa y unordered_map en C++
- 6. Diferencia entre C: y C:/
- 7. cuál es la diferencia entre mapa y hashmap en STL
- 8. ¿Cuál es la diferencia entre el conjunto <pair> y el mapa en C++?
- 9. Diferencia en el enlace entre C y C++?
- 10. C# diferencia entre == y equals()
- 11. asignación de mapa y shared_ptr entre aplicaciones C# y C++?
- 12. Diferencia entre byte y char en C
- 13. Diferencia entre char * y char [] en C
- 14. Diferencia entre "var" y "objeto" en C#
- 15. Diferencia entre read() y fgets() en C
- 16. Diferencia entre C++ administrado y C++
- 17. punteros void: diferencia entre C y C++
- 18. ¿Cuál es la diferencia entre Bitmap.Clone() y el nuevo mapa de bits (mapa de bits)?
- 19. ¿Diferencia entre sombreado y anulación en C#?
- 20. diferencia entre + y - métodos en Objective-C
- 21. Diferencia entre Convert.ToString() y .ToString() en C#?
- 22. diferencia entre sizeof y strlen en c
- 23. Diferencia entre == operador y el método Equals() en C#?
- 24. C++ diferencia entre ** y * & en el parámetro que pasa
- 25. Diferencia entre la propiedad y el campo en C# 3.0 +
- 26. Diferencia entre un mapa de bits y una imagen de mapa de bits en WPF
- 27. Diferencia entre el objeto y el objeto
- 28. Diferencia entre estática en C y estática en C++ ??
- 29. Diferencia entre hash_map y unordered_map?
- 30. Diferencia entre ASP.Net, C# .Net y VB.Net?
[Por supuesto que sí] (http://en.cppreference.com/w/cpp/container/map/at) ... –
@KerrekSB (desde C++ 11) no lo sabía. –