我想在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;
我该怎么做才能修复这些错误?谢谢!
答案 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()));
。