Страницы

Поиск по вопросам

четверг, 11 июля 2019 г.

C++: как задать размерность двумерного вектора в конструкторе класса

Class Matrix { int dimension; vector> matrix; public: Matrix(int dimension); ... }
Matrix::Matrix(int dimension) { this->dimension = dimension; }
В методе Matrix::Matrix(int dimension) хочется задать размерность двумерного вектора
dimension x dimension
но тот способ, которым делал это я, не работает
matrix.reserve(dimension); for (int i = 0; i < dimension; ++i) { matrix[i].reserve(dimension); }


Ответ

vector::reserve только резервирует память под элементы, но не выделяет их.
Используйте vector::resize
Matrix::Matrix(int dimension) : dimension(dimension), matrix(dimension) { for (auto& row : matrix) { row.resize(dimension); } }

Комментариев нет:

Отправить комментарий