c++ - 在 C++ 中存储大量短暂的游戏对象

标签 c++ data-structures

我将如何存储大量对象(如子弹或不断变化的对象),然后通过索引删除它们? 我听说 vector::erase 不是很有效。

最佳答案

使用 std::map(或 C++11s std::unordered_map),这些容器可以更好地分摊插入和删除操作的运行时复杂性。 std::list 也是一个选项(这是显而易见的选项,但我首先提到了其他选项,因为它们还允许快速查找/搜索,这在许多游戏场景中更为重要)。

在更高层次上,您绝对应该阅读 C++ 容器以及通常的运行时复杂性。明智地选择容器结构对于良好的性能至关重要。

关于c++ - 在 C++ 中存储大量短暂的游戏对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11417119/

相关文章:

c++ - 不明确的元函数或未定义的类型

C++指针未声明

c++ - 将私有(private)指针数组初始化为 null

c++ - 获取按位不为零的无符号整数的最大值

algorithm - 使用搜索和排序的不相交集

c++ - 字符数组顺序错误

javascript - 为什么 Javascript 数组可以同时保存多种数据类型?

c++ - 使用 C++ 过滤 CSV 数据

在链表中创建和添加数据

algorithm - 我可以使用递归算法来实现 Splay 树吗?