为了提问而虚构的例子:
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[]
应该返回什么? - Frerich Raabe