Когда пытаюсь прочитать значение карты 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);
...
}
Имейте только в виду, что этот метод будет бросать исключения в ответ на несуществующий ключ.
Виртуальный выделенный сервер (VDS) становится отличным выбором
В общем в одном из алгоритмов потребовалось вычислять квадратный корень из суммы квадратов двух аргументовКазалось бы, всё просто и я написал...
Как правильно перевести std::vector<int> в std::string? То есть например для вектора 1,2,3,4,5 должна быть строка 12345 на выходе
Осваиваю cmake и столкнулся вот с какой проблемой: У меня есть три папки с написанными мною статическими библиотекамиНазовем их a, b и c