如何在Eigen中定义VectorXd数组

时间:2016-07-23 15:20:40

标签: c++ eigen

我想在Eigen中定义一个void function(VectorXd * b, ...) { [snippet] vector<VectorXd(b->rows())> xs(max_iter+1); [snippet] } 数组,以下是我的代码

max_iter+1

所以,我想定义一个长度为3X1的数组,并且数组中的每个元素都是/path/to/solutions.h:187: error: invalid type in declaration before '(' token vector<VectorXd(b->rows())> xs(max_iter+1); ^ /path/to/solutions.h:187: error: 'b' cannot appear in a constant-expression vector<VectorXd(b->rows())> xs(max_iter+1); ^ VectorXd。

但是在编译时,它返回了以下错误:

Wurzel b=3;

我该怎么做才能修复这些错误?谢谢!

1 个答案:

答案 0 :(得分:2)

当您使用std::vector的{​​{1}}时,请使用

int

同样,当您使用std::vector<int> xs(size, init_value); 的{​​{1}}时,它应该是这样的。

std::vector

它必须是VectorXd之间的类型名称,但您使用对象std::vector<VectorXd> xs(max_iter+1, VectorXd(b->rows()));