질문에 대한 설명 된 예 :
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[]
주어진 요소가 존재하지 않는 경우 무엇을 산출 해야 합니까?