Ejemplo elaborado, por el bien de la pregunta:
void MyClass::MyFunction( int x ) const
{
std::cout << m_map[x] << std::endl
}
Esto no se compilará, ya que el operador [] no es constante.
Esto es lamentable, ya que la sintaxis [] parece muy limpia. En cambio, 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 constante?
operator[]
rendir en caso de que el elemento dado no exista?