2
可能重複:
Accessing elements of a matrix row-wise versus column-wise多立體的陣列迭代效率
在C++中,爲什麼它更有效地通過多維陣列這樣迭代:
// Iterate through the highest dimention last (k)
int num[10][10][10];
for(int i = 0; i < 10; ++i)
{
for(int j = 0; j < 10; ++j)
{
for(int k = 0; k < 10; ++k)
{
cout << num[i][j][k];
}
}
}
比如此:
// iterate through the highest dimension first (k)
int num[10][10][10];
for(int k = 0; k < 10; ++k)
{
for(int j = 0; j < 10; ++j)
{
for(int i = 0; i < 10; ++i)
{
cout << num[i][j][k];
}
}
}
可能重複:http://stackoverflow.com/q/4716125/1328439 –
不是一個確切的重複,但接受的答案是優秀的,回答這個問題 – stefaanv
呀,這個問題的答案回答也是我的漂亮多了。所以基本上它的速度更快,因爲數組最後一個維度中的元素在內存中一個接一個地存儲起來,所以如果你遍歷最後一個維度,那麼這些元素就會彼此相鄰,而不是象我的最後一個一樣跳過內存例?此外,每種語言和每個平臺都是如此嗎? – cody