处理顺序访问的对象时,链接列表与数组的性能有关吗?

1 c++

我目前正在设计一款游戏,每个级别最多使用大约10,000个对象.每个帧将按顺序访问所有对象至少一次,有时两次或更多次.现在我正在使用数组,但我很好奇链接列表是否更适合处理这样的任务.

我从来没有使用链接列表,但这似乎是一个适用的时间来使用它们,因为我正在研究的项目是一个学习的项目,所以我想尝试一种新的方法来处理游戏中的物体.链接列表似乎是节省空间和加快游戏速度的好方法,但由于我的经验不足,我很好奇是否会因切换到链接列表而导致性能下降.(通常我的座右铭是尝试并看到,但在这种情况下,需要相当多的工作才能在阵列上实现链接列表,而且我花了很多时间来设计层次和对象如何工作,所以我现在有点不舒服.)

Jam*_*lis 12

除非您经常在序列的中间插入和删除元素,否则数组肯定会优于链表(但是,有一些链接列表很有用的场景).

使用链表,您将失去在CPU级别预取的所有好处,因为每个节点都必须单独获取.

当然,由于这是C++,你可以通过交换使用std::vectorwith 来轻松测试性能差异std::list,对吧?:-)