Estoy leyendo:¿Por qué solo los mapas no constantes proporcionan una recuperación asociativa de elementos directos similar a una matriz?
La biblioteca estándar de C++: un tutorial y de referencia de Nicolai M. Jossuttis
Es mi go-reservar cuando voy a utilizar algunos mecanismos en STL cualquier forma significativa. De todos modos, yo estaba releyendo rápidamente los capítulos sobre std :: mapa y algoritmos relacionados y me di cuenta de una frase que no había pensado antes:
mapasno constante proporcionan un operador subíndice para el acceso directo elemento. Sin embargo, el índice del operador de subíndice no es la posición integral del elemento. ... etc.
¿Por qué solo se pueden usar mapas no constantes de la misma manera? Parece que sería bastante simple proporcionar semántica de solo lectura en este caso. Supongo que serían posibles excepciones si intentas recuperar un elemento con una clave que no existe (ya que no puedes agregar una nueva clave/valor al mapa si es constante).
Me gustaría entender el razonamiento detrás de esto si alguien puede arrojar algo de luz :) gracias!
¿Cómo esperas que 'map [" foo "]' funcione en una instancia 'const' de' std :: map' si no hay un elemento coincidente? No puede crearlo ya que el 'map' es const y arrojar una expection diferiría del comportamiento no const que podría ser peligroso. – ereOn