【发布时间】:2013-01-26 02:22:35
【问题描述】:
当我使用它时,我想可以肯定地说这些对象是对齐的:
std::vector<object_type> vect;
我在子弹物理中发现了一个分配器,但我不知道它们是如何工作的。这也引发了关于 std::vector 的问题。
在这里的演示中,第 42 行,http://code.google.com/p/bullet/source/browse/trunk/Demos/BasicDemo/BasicDemo.h#42
btAlignedObjectArray<btCollisionShape*> m_collisionShapes;
类型是一个指针,然后这些指针被分配一个new。它真的能保证对齐吗?如果分配器是用来处理指针的,我想是的,但我没有任何分配器知识,最重要的是我不知道什么是过时的。
std::vector 呢?如果我声明
std::vector<object_type*> vect;
稍后分配,编译器还会对齐我的对象吗?
【问题讨论】:
-
什么对齐? 4字节对齐? 8字节对齐? 4KiB对齐?还是您误用了对齐一词?
-
缓存对齐
标签: c++ performance vector stl alignment