Объявление для оператора [] на std:: map таково:
T& operator[] ( const key_type& x );
Есть ли причина, по которой это не так?
T& operator[] ( const key_type& x );
const T& operator[] const ( const key_type& x );
Потому что это было бы невероятно полезно в любое время, когда вам нужно получить доступ к карте членов в методе const.