遍历和数组的最佳方法,为什么?
Best way to traverse and array and why?
我有一个问题让我很感兴趣:“遍历二维数组的最佳方法是什么?”当我们谈论计算机中的内存时。那么在这种情况下哪个选项最有效:
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
是最好的?我需要知道为什么是最有效的。
谢谢!
您的示例中没有使用 j
,并且您的数组似乎是一维的,所以我不确定您的问题是什么。
当谈到二维数组(在内存中实际上是一维的)时,逐行处理它们可能更有效,因为它们在内存中按行优先顺序排列(一行一个之后)。如果您有非常大的数组,其中不超过 sizeOfArray
个元素适合缓存,则在按列迭代时会造成很多缓存未命中。
我有一个问题让我很感兴趣:“遍历二维数组的最佳方法是什么?”当我们谈论计算机中的内存时。那么在这种情况下哪个选项最有效:
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
是最好的?我需要知道为什么是最有效的。
谢谢!
您的示例中没有使用 j
,并且您的数组似乎是一维的,所以我不确定您的问题是什么。
当谈到二维数组(在内存中实际上是一维的)时,逐行处理它们可能更有效,因为它们在内存中按行优先顺序排列(一行一个之后)。如果您有非常大的数组,其中不超过 sizeOfArray
个元素适合缓存,则在按列迭代时会造成很多缓存未命中。