Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 本征稀疏矩阵保留nnz_C++_Sparse Matrix_Eigen - Fatal编程技术网

C++ 本征稀疏矩阵保留nnz

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

我想知道Eigen中的
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);