Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在std::vector<;中复制向量;本征::矢量xd>;到另一个std::vector中的另一个向量<;本征::矢量xd>;_C++ - Fatal编程技术网

C++ 如何在std::vector<;中复制向量;本征::矢量xd>;到另一个std::vector中的另一个向量<;本征::矢量xd>;

C++ 如何在std::vector<;中复制向量;本征::矢量xd>;到另一个std::vector中的另一个向量<;本征::矢量xd>;,c++,C++,如何将std::vector中的一个向量(Eigen::vectorXd)复制到另一个std::vector中的另一个向量(Eigen::vectorXd) 但它不工作,编译时没有错误。当runsamples[i]=boea_samples[i]时,它就停止了; 谢谢 Eigen仅支持STL容器中使用的固定大小向量。即便如此,它也不是直截了当的。Eigen库为它们的对象实现它们自己的分配器。这导致在STL容器中使用特征对象时需要采取一些额外的步骤 这是文件Eigen中的一个示例: #inclu

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

但它不工作,编译时没有错误。当run
samples[i]=boea_samples[i]时,它就停止了;

谢谢

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

这是文件Eigen中的一个示例:

#include<Eigen/StdVector>
/* ... */
std::vector<Eigen::Vector4f, Eigen::aligned_allocator<Eigen::Vector4f> >
#包括
/* ... */
向量
您看到的是,除了数据类型之外,还将分配器指定为模板参数

您可以在Eigen文档中隐藏的这一章中阅读更多内容:

这些行可能不是问题的原因,因为Eigen::VectorXd类实现了operator=。这很相似,可能会有所帮助。您能提供编译器错误消息或无法工作的完整代码吗?
Eigen仅支持STL容器中使用的固定大小向量。
我认为这不是真的。我在std::vectors中使用了VectorXf和MatrixXf。动态变量显然不会将实际数据存储在std::vector分配的内存中,但是将VectorXd元素存储在std::vector中应该不会有任何问题。很可能是动态对象本身不需要这些分配器。我现在在文档中找不到这个。我想我只使用了固定大小的向量和矩阵,因此我遇到了这个问题。非常感谢,我已经解决了这个问题。我们需要给向量一个初始大小,我们可以把值传递给向量。
samples[i] = boea_samples[i];
#include<Eigen/StdVector>
/* ... */
std::vector<Eigen::Vector4f, Eigen::aligned_allocator<Eigen::Vector4f> >