Надуманный пример, ради вопроса:
void MyClass::MyFunction( int x ) const
{
std::cout << m_map[x] << std::endl
}
Это не будет компилироваться, поскольку оператор [] не является константой.
Это прискорбно, поскольку синтаксис [] выглядит очень чистым. Вместо этого я должен сделать что-то вроде этого:
void MyClass::MyFunction( int x ) const
{
MyMap iter = m_map.find(x);
std::cout << iter->second << std::endl
}
Меня это всегда беспокоило. Почему оператор [] не является константой?
operator[]
дать, если данного элемента не существует?