我正在使用 C++ 中的Armadillo库来存储/计算大型矩阵。我的理解是应该动态地存储大型数组/矩阵(在堆上)。
假设我声明了一个矩阵
mat X;
并将大小设置为(比如说)500 行,500 列随机条目:
X.randn(500,500);
犰狳是否X
动态存储(即在堆上),尽管不使用new
or delete
.?我问的原因是,似乎犰狳允许我将变量声明为:
mat::fixed<n_rows, n_cols>
其中,我引用:“通常比动态内存分配更快,但矩阵的大小不能在之后(直接或间接)更改”。
不管以上 - 我应该使用这个:
mat A;
A.set_size(n-1,n-1);
或这个:
mat *A = new mat;
(*A).set_size(n-1,n-1);
其中 n 介于 1000 或 100000 之间,并且事先不知道。