esempio forzato, per motivi di domanda:Perché non l'operatore [] const per le mappe STL?
void MyClass::MyFunction(int x) const
{
std::cout << m_map[x] << std::endl
}
Questo non verrà compilato, in quanto l'operatore [] è non-const.
Questo è un peccato, poiché la sintassi [] sembra molto pulita. Invece, devo fare qualcosa di simile:
void MyClass::MyFunction(int x) const
{
MyMap iter = m_map.find(x);
std::cout << iter->second << std::endl
}
Questo mi ha sempre infastidito. Perché l'operatore [] non-const?
Quale dovrebbe essere 'operatore []' resa in caso l'elemento dato non esiste? –
@Frerich Raabe: La stessa cosa della funzione membro at: throw std :: out_of_range –