gpt4 book ai didi

c++ - 这是遍历数组的更快方法

转载 作者:行者123 更新时间:2023-11-28 07:14:37 24 4
gpt4 key购买 nike

比较以下两段代码:

for (int i = 0; i<array_size; i++)
cout << array[i] << endl;

int* p_end = array+array_size;
for (int* p_array = array; p_array != p_end; p_array++)
cout << *p_array << endl;

哪个更快?

另一个问题是如果我们只想遍历那么哪个更快:链表还是数组?谢谢!

最佳答案

array[i] 可能 更快,因为编译器知道您没有将指针别名指向您不应该指向的地方。

由于在每个节点之间强加了间接寻址,列表的遍历速度要慢得多 - 这会破坏您的缓存并导致许多缓存未命中,这可能是现代处理器可能发生的最糟糕的事情。

关于c++ - 这是遍历数组的更快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20436872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com