在包含特征类型的类上对`std :: vector`使用`Eigen :: aligned_allocator`

时间:2015-07-09 18:45:03

标签: c++ visual-studio vector eigen memory-alignment

根据Eigen's documentation创建带有“固定大小可矢量化特征类型”std::vector时,Eigen::aligned_allocator 必须使用,例如:

std::vector<Eigen::Vector4f,Eigen::aligned_allocator<Eigen::Vector4f> > myVector;

我有一个包含固定大小特征成员的类,以及该类的std::vector,例如:

class myClass{
public:    Eigen::Vector2d v;
}
//...
std::vector<myClass> myVector;
std::vector<myClass*> myPtrVector;

问题:我是否需要对包含Eigen成员的类的向量使用Eigen::aligned_allocator(与直接的Eigen类型的向量相同)?

(我正在使用Visual Studio 2013,如果这很重要)

1 个答案:

答案 0 :(得分:0)

我相信答案是肯定的。

page you referenced上的第一句话说“......或者有类似成员的班级,需要采取以下两个步骤

  • 必须使用16字节对齐的分配器。 Eigen确实提供了一个可以使用的:aligned_allocator。
  • 如果要使用std :: vector容器,则需要#include。 “