exemple Contrived, pour le bien de la question:Pourquoi l'opérateur [] n'est-il pas affecté aux cartes STL?
void MyClass::MyFunction(int x) const
{
std::cout << m_map[x] << std::endl
}
Ce ne compilera pas, puisque l'opérateur [] est non-const.
Ceci est regrettable, car la syntaxe [] semble 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 embêté. Pourquoi l'opérateur [] est-il non-const?
Que doit 'opérateur []' rendement en cas l'élément donné n'existe pas? –
@Frerich Raabe: La même chose que la fonction at: throw std :: out_of_range –