哪个更好,单 for 循环或双 for 循环迭代二维数组? C++
Posted
技术标签:
【中文标题】哪个更好,单 for 循环或双 for 循环迭代二维数组? C++【英文标题】:Which is better, a single for loop or double for loop to iterate through 2-D array? C++ 【发布时间】: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;
【问题讨论】:
嗯,第一个使用除法,第二个没有。假设编译器不仅自己使它们相同,那么第二个会更好,因为它没有除法,并且更易于阅读。 第二组循环会产生更好的组装。但老实说,除非这非常关键,否则我认为它不会有太大的不同。 你不应该假设内存布局,代码应该是透明的,它实际上在做什么。第二版。 必须是二维数组吗? 【参考方案1】:正确的选择是多循环。请记住,它执行的操作要少得多,因为它不必划分或计算模块来访问数组位置。
这是正确的选择:
for (int i = 0; i < 9; i++)
for (int j = 0; j < 9; j++)
currentEdit[i][j] = 0;
【讨论】:
以上是关于哪个更好,单 for 循环或双 for 循环迭代二维数组? C++的主要内容,如果未能解决你的问题,请参考以下文章