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