【发布时间】:2020-04-09 23:25:46
【问题描述】:
假设我有一个 9×9 二维数组。使用单个循环或多个循环进行循环之间有区别吗?
for (int i = 0; i < 81; i++)
currentEdit[i / 9][i % 9] = 0;
VS.
for (int i = 0; i < 9; i++)
for (int j = 0; j < 9; j++)
currentEdit[i][j] = 0;
【问题讨论】:
-
嗯,第一个使用除法,第二个没有。假设编译器不仅自己使它们相同,那么第二个会更好,因为它没有除法,并且更易于阅读。
-
第二组循环会产生更好的组装。但老实说,除非这非常关键,否则我认为它不会有太大的不同。
-
你不应该假设内存布局,代码应该是透明的,它实际上在做什么。第二版。
-
必须是二维数组吗?
标签: c++ arrays performance loops