C++ 本征稀疏矩阵保留nnz
我想知道Eigen中的C++ 本征稀疏矩阵保留nnz,c++,sparse-matrix,eigen,C++,Sparse Matrix,Eigen,我想知道Eigen中的reserve方法是否也为外部索引和内部索引分配内存(在3-CSC情况下) 这意味着如果我这样做了 n = 1000 SparseMatrix<float> A; A.reserve(n) 预分配reserveSize非零 前提条件:矩阵必须处于压缩模式 有人能澄清这一点吗?或者告诉我一些关于预订政策的事情?谢谢不,矩阵的大小应该是相当静态的,因此reserve(n)只为非零分配空间。如果尺寸未知,可以从上限开始: SparseMatrix<float
reserve
方法是否也为外部索引和内部索引分配内存(在3-CSC情况下)
这意味着如果我这样做了
n = 1000
SparseMatrix<float> A;
A.reserve(n)
预分配reserveSize非零
前提条件:矩阵必须处于压缩模式
有人能澄清这一点吗?或者告诉我一些关于预订政策的事情?谢谢不,矩阵的大小应该是相当静态的,因此
reserve(n)
只为非零分配空间。如果尺寸未知,可以从上限开始:
SparseMatrix<float> A(n,n);
完成后,知道最终尺寸后,将其缩小:
A.conservativeResize(rows,cols);
这意味着如果我知道开始的维度,比如说
SparseMatrix A(m,m);A.储备(n)代码>然后内部索引和数据捕获n
内存和外部索引捕获m+1
内存?第一部分为真,但不是最后一部分:外部索引的内存由A(m,m)构造函数分配和初始化<代码>保留
与外部索引无关。非常感谢。也许你应该编辑并在你的答案中包含这一点。
A.reserve(10*n);
A.conservativeResize(rows,cols);