D:\ZBY\ZBYQT\VarTst\main.cpp:16: error: invalid conversion from 'const Scalar* {aka const double*}' to 'Eigen::Map<Eigen::Matrix<double, -1, 1>, 0, Eigen::Stride<0, 0> >::PointerArgType {aka double*}' [-fpermissive] VectorXd vec_X = Map<VectorXd>(X.data(), n * k); ^
时间: 2024-02-17 22:02:16 浏览: 92
leetcode答案-zby-leetcode-python:zby的Python版答案
这是一个编译错误,错误的原因是在第16行代码中,类型转换出现问题。具体来说,`Map<VectorXd>(X.data(), n * k)` 中 `X.data()` 的类型是 `const double*`,但是 `Map<VectorXd>` 要求指针类型为 `double*`。因此,需要将 `X.data()` 的类型转换为 `double*`。
解决这个问题的方法是使用 `const_cast` 进行类型转换。修改代码如下:
```cpp
VectorXd vec_X = Map<VectorXd>(const_cast<double*>(X.data()), n * k);
```
使用 `const_cast` 将 `X.data()` 的类型转换为 `double*` 后,就可以正确地进行类型转换了。
阅读全文