wymyślony przykład, ze względu na pytanie:Dlaczego nie jest ustawieniem operatora [] dla map STL?
void MyClass::MyFunction(int x) const
{
std::cout << m_map[x] << std::endl
}
nie będzie zestawiania, gdyż [] operator const.
To niefortunne, ponieważ składnia [] wygląda bardzo czysto. Zamiast tego muszę zrobić coś takiego:
void MyClass::MyFunction(int x) const
{
MyMap iter = m_map.find(x);
std::cout << iter->second << std::endl
}
To zawsze mnie wkurzało. Dlaczego operator [] nie jest const?
co powinno operatora '[]' wydajność w przypadku dany element nie istnieje? –
@Frerich Raabe: To samo, co funkcja at member: throw std :: out_of_range –