Когда пытаюсь прочитать значение карты map в методе класса с помощью map[key], то получаю непонятную ошибку
passing ‘const std::map’ as ‘this’ argument discards qualifiers
Что она означает?
добавил код
class Rectangle {
private:
std::map<int, int> vertices;
public:
Rectangle(const map<int, int>& vertices) {
this->vertices = vertices;
}
void print_vertices() const {
cout << vertices[0];
cout << vertices[1];
cout << vertices[2];
cout << vertices[3];
}
// ...
};
int main() {
Rectangle x{{{0, -34}, {1, 45}, {2, 92}, {3, 0}}};
x.print_vertices();
}
Оператор [] в std::map является модифицирующим оператором. Его не разрешается вызывать на константных std::map, о чем вам компилятор и говорит.
Для константных std::map существует метод at
void print_vertices() const {
cout << vertices.at(0);
...
}
Имейте только в виду, что этот метод будет бросать исключения в ответ на несуществующий ключ.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости