我是一名数学专业的学生,对 C++ 还很陌生,为了帮助我的学习,我想创建一个矩阵类(我不想使用库类)。我正在考虑做类似的事情
int iRows = 5;
int iColumns = 6;
double** pMatrix = new double*[iRows];
for (int i = 0; i < iRows; ++i) {
pMatrix[i] = new double[iColumns];
}
(我不确定这是否是正确的语法 - 我想在尝试之前在这里获得建议)但我在 Stackoverflow 上看到不推荐使用与 shared_ptr 不同的指针。使用vector<vector<double>>
更好吗?这样我就不用担心删除内存了?我担心 vector 不是一个好的选择,因为长度可以用 push_back 改变,我希望矩阵的大小固定。我不能使用
double dMatrix[iRows][iColumns];
因为尺寸不是恒定的。什么是我使用的最佳选择?
最佳答案
可能
std::vector<double> matrix(rows * columns); // ditch the prefixes
// indexing: matrix[row * columns + column];
因为无论如何每一行都会有相同数量的列。
关于c++ - vector<vector<double>> 是制作矩阵类的好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11939693/