Exemple artificiel, pour le bien de la question:
void MyClass::MyFunction( int x ) const
{
std::cout << m_map[x] << std::endl
}
Cela ne compilera pas, car l'opérateur [] est non-const.
C'est dommage, car la syntaxe [] a l'air très propre. Au lieu de cela, je dois faire quelque chose comme ceci:
void MyClass::MyFunction( int x ) const
{
MyMap iter = m_map.find(x);
std::cout << iter->second << std::endl
}
Cela m'a toujours dérangé. Pourquoi l'opérateur [] est-il non-const?
operator[]
rapporter au cas où l'élément donné n'existe pas?