如何将std :: vector <eigen :: vectorxd>中的向量复制到另一个std :: vector <eigen :: vectorxd>中的另一个向量

时间:2019-05-30 17:49:14

标签: c++

如何将std::vector<Eigen::vectorXd>中的向量(Eigen :: vectorXd)复制到另一个std::vector<Eigen::vectorXd>中的另一个向量(Eigen :: vectorXd)

std::vector< Eigen::VectorXd > samples;
std::vector< Eigen::VectorXd > boea_samples;

我想做

samples[i] = boea_samples[i];

但是它不起作用,并且在编译时没有错误。它仅在运行samples[i] = boea_samples[i]; 时停止 谢谢!

1 个答案:

答案 0 :(得分:1)

Eigen仅支持在STL容器中使用的固定大小的向量。即使那样,它也不是直截了当的。本征库为对象实现了自己的分配器。这导致在STL容器中使用本征对象时,您需要采取一些额外的步骤。

这是文档Eigen的示例:

#include<Eigen/StdVector>
/* ... */
std::vector<Eigen::Vector4f, Eigen::aligned_allocator<Eigen::Vector4f> >

您看到的是,除了数据类型之外,分配器还被指定为模板参数。

您可以在Eigen文档的这一隐藏的章节中了解更多信息: https://eigen.tuxfamily.org/dox/group__TopicStlContainers.html