Измислен пример, в името на въпроса:
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
}
Това винаги ме е притеснявало. Защо операторът [] не е const?
operator[]
в случай, че даденият елемент не съществува? - person Frerich Raabe   schedule 16.11.2011