gpt4 book ai didi

c++ - 使用字节 vector 作为其他类型的原始存储是一种好习惯吗?

转载 作者:行者123 更新时间:2023-11-28 04:35:08 26 4
gpt4 key购买 nike

我已经开始关注 YouTube 上的 ECS 教程,之前我从未见过有人将新变量分配到 uint8vector 中。

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;
}

(问题的完整代码可以找到hereArray这里是#define Array std::vector)

它与使用指针 vector 有何不同,为什么更好?

最佳答案

这基本上是一个“池分配器”。既然您知道它的名称,您就可以了解为什么这样做了,但性能通常是动力。

所有分配都在一个 vector 中完成,最后整个 vector 可以立即释放(在销毁其中的对象之后,您可以在下面的释放函数中看到)。

关于c++ - 使用字节 vector 作为其他类型的原始存储是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51684510/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com