我有關於在C數組的++陣列的索引一些混亂:索引到的std ::的std ::陣列陣列
我有:
array<array<int, SIZE_INNER>, SIZE_OUTER> arr;
當我做索引,我假定以下:
arr[outer_index][inner_index]
所以,outer_index
與SIZE_OUTER
陣列至上,然後將內索引次之。
這是真的嗎?
我有關於在C數組的++陣列的索引一些混亂:索引到的std ::的std ::陣列陣列
我有:
array<array<int, SIZE_INNER>, SIZE_OUTER> arr;
當我做索引,我假定以下:
arr[outer_index][inner_index]
所以,outer_index
與SIZE_OUTER
陣列至上,然後將內索引次之。
這是真的嗎?
是的。這樣想:arr[o]
訪問arr
的第o個元素。元素是一個數組的事實也沒有多大改變。
隨後調用operator []
前一次調用返回的訪問元素。
是的。讓它分解一點
array<int, SIZE_INNER>
準備創建一個大小爲SIZE_INNER的數組。現在你包數組中
array<array<int, SIZE_INNER>, SIZE_OUTER> arr;
所以內陣列是你的「列」和外部陣列是你的「行」。就像普通的二維數組一樣。
當使用[]
操作符時,距離最右邊的那個最內層陣列。
是的,這是真的:) –
請參閱[C++ 11中的多維數組](http://cpptruths.blogspot.com/2011/10/multi-dimensional-arrays-in-c11.html) –