遍历和数组的最佳方法是什么?

时间:2015-10-26 07:19:36

标签: multidimensional-array traversal

我得到一个让我感兴趣的问题:" 哪个是遍历二维数组的最佳方法?"当我们谈论计算机中的记忆时。那么在这种情况下哪个选项最有效:

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是最好的吗?我需要知道为什么效率最高。

谢谢!

1 个答案:

答案 0 :(得分:0)

您的示例中没有使用j,并且您的数组似乎是1维的,所以我不确定您的问题是什么。

当谈到二维数组(在内存中实际上是1维)时,逐行处理它们可能更有效,因为它们以行主要顺序排列在内存中(后面的一行)其他)。如果你有一个非常大的数组,其中不超过sizeOfArray个元素适合缓存,那么在逐列迭代时会产生大量的缓存未命中。