Erfundenes Beispiel für die Frage:
void MyClass::MyFunction( int x ) const
{
std::cout << m_map[x] << std::endl
}
Dies wird nicht kompiliert, da der Operator [] nicht const ist.
Dies ist bedauerlich, da die Syntax [] sehr sauber aussieht. Stattdessen muss ich so etwas tun:
void MyClass::MyFunction( int x ) const
{
MyMap iter = m_map.find(x);
std::cout << iter->second << std::endl
}
Das hat mich immer nervt. Warum ist der Operator [] nicht konstant?
operator[]ergeben, wenn das angegebene Element nicht existiert?