質問のために考案された例:
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[]
指定された要素が存在しない場合、何が生成されますか?