c++ - vector<vector<double>> 是制作矩阵类的好方法吗?

标签 c++ vector matrix

我是一名数学专业的学生,​​对 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/

相关文章:

java - 查找二维方形数组中任意随机点的对角线

c++ - 如何在基类构造函数中使用派生类成员

c++ - 带有文本和整数组件的 ShowMessage

c++ - 为什么不在这个静态库中创建多个已定义的符号?

Java 泛型 : Is there a better solution than Vector2D, Vector3D、Vector4D 等?

java - 在特定布局中添加矩阵

c++ - 学什么才能在windows上使用c++在线发送文件?

vector - 为什么 Julia 没有在函数中获取正确的数据?

c++ - move 使用无效?

algorithm - 优化图形邻接的矢量化代码