ejemplo Contrived, por el bien de la pregunta:¿Por qué no está el operador [] const para los mapas STL?
void MyClass::MyFunction(int x) const
{
std::cout << m_map[x] << std::endl
}
Esto no se compilará, ya que el operador [] es no constante.
Esto es desafortunado, ya que la sintaxis [] se ve muy limpia. En su lugar, tengo que hacer algo como esto:
void MyClass::MyFunction(int x) const
{
MyMap iter = m_map.find(x);
std::cout << iter->second << std::endl
}
Esto siempre me ha molestado. ¿Por qué el operador [] no es const?
¿Qué debe 'operador []' rendimiento en el caso el elemento dado no existe? –
@Frerich Raabe: Lo mismo que en la función miembro en: throw std :: out_of_range –