检索特征块与std :: vector中的条目的效率

时间:2017-12-07 12:06:00

标签: c++ eigen stdvector eigen3

我不清楚如何编译Eigen的块,这可能是相关的,例如在for循环中。 作为一个具体的例子,

之间会有什么区别
Eigen::VectorXd x(3*N);
Eigen::VectorXd y(3*N);
Eigen::VectorXd z(N);
for (int i=0; i<N; ++i)
{
    z[i] = x.block<3,1>(3*i).dot(y.block<3,1>(3*i));
}

std::vector<Eigen::Vector3d> x(N);
std::vector<Eigen::Vector3d> y(N);
std::vector<double>          z(N);
for (int i=0; i<N; ++i)
{
    z[i] = x[i].dot(y[i]);
}

第一次会在每次迭代时创建对各个块的引用,还是会将其编译为与向量元素访问大致相同?

0 个答案:

没有答案