c++ - std::vector 是否适合频繁调整大小?

标签 c++ vector stl resize

我正在创建一个有小“粒子”的游戏。它们的数量变化非常频繁(每隔几秒),我想知道存储它们的最佳方式是什么。 std::vectorstd::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/

相关文章:

c++ - .txt 文件中的表格转换为 C++ 中的 vector

c++ - 在 C++ 中创建集合排列的问题

c++ - C++中多态对象的二维容器

c++ - 垃圾收集何时能比手动内存管理更快?

c++ - 如何计算余数有什么不同吗?

c++ - 在另一台计算机上运行使用 Visual Studio 构建的 EXE 文件的问题

r - 如何从 R 中的向量列表创建矩阵?

c++ - 对结构 vector 进行排序

c++ - 帮助 std::find

c++ - boost::details::pool::pthread_mutex 和 boost::details::pool::null_mutex