我正在创建一个有小“粒子”的游戏。它们的数量变化非常频繁(每隔几秒),我想知道存储它们的最佳方式是什么。 std::vector
或 std::deque
对此更好吗?
是否可以保留永远不会被使用的空间(在那个容器中)(我有上限)?
最佳答案
如果顺序无关紧要(我认为这无关紧要),您可以将它替换为 vector 中的另一个粒子,而不是移除一个粒子
std::vector<Particle> particles;
当您删除索引 i
处的粒子时 - 只需用最后一个粒子填充空白区域:
particles[i] = particles.back();
particles.pop_back();
如果使用指针 vector ,您可以使其更快。
关于c++ - std::vector 是否适合频繁调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11428191/