<分区>
给我一个错误的代码如下。当我从参数类型中删除“const”时,它起作用了。
#include<iostream>
#include<vector>
#include</usr/include/eigen3/Eigen/Core>
using namespace std;
void func(const vector<double>& x)
{
Eigen::VectorXd X=Eigen::Map<Eigen::VectorXd>(&x[0], x.size());
}
int main(){
vector<double> x(100);
func(x);
}
错误如下。我无法理解。谁能给我解释一下?有没有一种好方法可以用“const”关键字做同样的事情?
error: invalid conversion from ‘const value_type* {aka const double*}’ to ‘Eigen::Map<Eigen::Matrix<double, -1, 1>, 0, Eigen::Stride<0, 0> >::PointerArgType {aka double*}’ [-fpermissive]
Eigen::VectorXd X=Eigen::Map<Eigen::VectorXd>(&x[0], x.size());