我得到一个让我感兴趣的问题:" 哪个是遍历二维数组的最佳方法?"当我们谈论计算机中的记忆时。那么在这种情况下哪个选项最有效:
for (int i=0; i< sizeOfArray; ++i)
{
for (int j=0; j< size2OfArray; ++j)
{
//do something with array[i]
//do something with array[j]
}
}
i
应该先行吗? r j
是最好的吗?我需要知道为什么效率最高。
谢谢!
答案 0 :(得分:0)
您的示例中没有使用j
,并且您的数组似乎是1维的,所以我不确定您的问题是什么。
当谈到二维数组(在内存中实际上是1维)时,逐行处理它们可能更有效,因为它们以行主要顺序排列在内存中(后面的一行)其他)。如果你有一个非常大的数组,其中不超过sizeOfArray
个元素适合缓存,那么在逐列迭代时会产生大量的缓存未命中。