我正在尝试用 C++ 创建一个通用矩阵结构,但现在我所拥有的只是
struct matrix{
int cells[dim][dim];
}
其中 dim 是 const int。
但是我希望让事情变得更加动态,这样我就可以声明不同大小的矩阵。我可以通过将所有内容转换为 int vector 的 vector 来解决这个问题,但随后我会遭受巨大的速度损失。
最佳答案
您还可以对矩阵类使用单个 vector ,该 vector 效果很好,因为数据将根据基于行或列的存储而连续。例如
Struct Matrix {
std::vector<int> cells;
int nrows, ncols;
Matrix(int rows, int cols) : cells(rows * cols), nrows(rows), ncols(cols)
{}
int& operator()(int row, int col){
return cells[row * ncols + col];
}
void resize(int rows, int cols){
cells.resize(rows*cols);
nrows = rows;
ncols = cols;
}
}
这是一个很好的矩阵 vector 包装器,可以避免您需要使用 c 风格的东西。
关于c++ - 如何创建动态大小的双整型数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17899280/