2
我有一個問題,在Eigen教程here中指示的逗號初始化似乎沒有工作。Eigen C++中的逗號初始化問題C++
我有一個系統,其中i有一個主要部分,在那裏一個向量被初始化:
主要:
VectorXd v;
和的函數:
double useVector(VectorXd &v) {
dataI = model_.find();
v << model_[dataI].v[0], model_[dataI].v[1], model_[dataI].v[2], 1;
return dataI;
}
注:功能這樣使用:
double distance = useVector(v);
現在的model_[dataI].v
是double[3]
,它絕對有效。我的理解是,這和這是一樣的:
VectorXd v;
v << 1, 2, 3,
4, 5, 6,
7, 8, 9;
但它不起作用,代碼是在函數的逗號初始化階段進行分段。
注意:只要v是初始化這樣
v.resize(4)
v[0] = model_[dataI].v[0];
v[1] = model_[dataI].v[1];
v[2] = model_[dataI].v[2];
v[3] = 1;
:
VectorXd v(4);
這馬上讓我不知道關於調整大小的點(但如果我把它這個工程雖然那麼它會再次發生故障)。
有誰知道爲什麼會發生這種情況?