据说遍历向量(即读取所有元素)比遍历链表更快,因为缓存被优化了。
是否有任何资源可以量化它对性能的影响?
此外,使用自定义的链接列表会更好,其中元素将被预先分配,以便它们在内存中连续吗?
这背后的想法是我想按一定顺序存储元素,这个顺序不会改变。我仍然需要能够在运行时快速地在中间插入一些元素,但是大多数元素仍然是连续的,因为顺序不会改变。
元素连续是否对缓存产生影响,还是因为我仍将调用
是否有任何资源可以量化它对性能的影响?
此外,使用自定义的链接列表会更好,其中元素将被预先分配,以便它们在内存中连续吗?
这背后的想法是我想按一定顺序存储元素,这个顺序不会改变。我仍然需要能够在运行时快速地在中间插入一些元素,但是大多数元素仍然是连续的,因为顺序不会改变。
元素连续是否对缓存产生影响,还是因为我仍将调用
list_element->next
而不是++list_element
,因此没有改进呢?
std::list
的主要要求是从列表的任何位置插入和删除单个元素的时间都是常量级别。这与元素在内存中连续的要求不兼容。 - juanchopanza