我已经开始关注 YouTube 上的 ECS 教程,而且我从未见过有人将新变量分配到 a vector
ofuint8
之前。
template<typename Component>
uint32 ECSComponentCreate(Array<uint8>& memory, EntityHandle entity, BaseECSComponent* comp)
{
uint32 index = memory.size();
memory.resize(index+Component::SIZE);
Component* component = new(&memory[index])Component(*(Component*)comp);
component->entity = entity;
return index;
}
(有问题的完整代码可以在这里找到;Array
这里是#define Array std::vector
)
它与使用指针向量有何不同,为什么它更好?