gpt4 book ai didi

c++ - 执行直接指针操作还是 [] 更好

转载 作者:搜寻专家 更新时间:2023-10-31 00:14:48 28 4
gpt4 key购买 nike

我有一个二维数组。我需要尽可能快地对其执行一些操作(函数每秒将被调用十几次,所以让它变得高效会很好)。

现在,假设我想获取元素 A[i][j],简单地使用 A[i][j] 在速度上有什么不同吗和 *(A+(i*width+j))(忽略我需要计算 i*width+j 的事实,假设我已经有了这个值)?

最佳答案

启用所有优化后,应该没有区别 - 不仅在时间上,而且在编译器为这两个构造生成的代码上。

从程序员的角度来看,最大的不同是可读性。第一个结构立即告诉读者他正在处理一个二维数组,而第二个则需要一些思考(它是行优先顺序还是列优先顺序?width 在哪里计算? 选择这种方式而不是更明显的 2D 数组语法的原因是什么?)。这就是为什么第一个构造在现实生活场景中更可取。

关于c++ - 执行直接指针操作还是 [] 更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21655848/

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