C++ 特征稀疏矩阵与C数组的乘积

C++ 特征稀疏矩阵与C数组的乘积,c++,eigen,C++,Eigen,我有一个特征稀疏矩阵,我想用一个向量乘以它。然而,我的向量存储在STL向量容器中,因为整个东西的设计方式。所以,我有这样的想法: std::vector<float> values; Eigen::SparseMatrix<float> some_mat; // fill the matrix and vector .... float * vec = &values[0]; some_mat * vec; 无需将向量复制到特征向量对象中。如果无法复制,那么

我有一个特征稀疏矩阵,我想用一个向量乘以它。然而,我的向量存储在STL向量容器中,因为整个东西的设计方式。所以,我有这样的想法:

std::vector<float> values;
Eigen::SparseMatrix<float> some_mat;

// fill the matrix and vector
....
float * vec = &values[0];
some_mat * vec;

无需将向量复制到特征向量对象中。如果无法复制,那么将STL向量或C数组复制到特征向量XF对象的最有效方法是什么?

为此,您可以使用
eigen::Map

VectorXd res = some_mat * VectorXf::Map(vec, size);
请注意,
Map
对象是读写的,因此
res
也可以是
Map