如何将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];
时停止
谢谢!
答案 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