2015-05-11 3 views
0

меня есть некоторая путаница относительно индексации массива массивов в C++:индексирование в станд :: массив станд :: массив

у меня есть:

array<array<int, SIZE_INNER>, SIZE_OUTER> arr; 

Когда я индексацию, я полагаю, следующее:

arr[outer_index][inner_index] 

Итак, outer_index в массив с SIZE_OUTER приходит первым, а внутренний индекс затем приходит второй.

Это правда?

+9

yes thats true :) –

+0

См. [Многомерные массивы в C++ 11] (http://cpptruths.blogspot.com/2011/10/multi-dimensional-arrays-in-c11.html) –

ответ

3

Да. Подумайте вот так: arr[o] обращается к o-му элементу arr. Тот факт, что элемент является массивом, тоже не сильно меняется.

Последующие звонки в operator [] элементы доступа, возвращенные предыдущими вызовами.

1

Да. Позвольте немного сломать его

array<int, SIZE_INNER> 

Собирается создать массив размеров SIZE_INNER. Теперь вы оберните этот массив в

array<array<int, SIZE_INNER>, SIZE_OUTER> arr; 

Таким образом, внутренний массив - это ваш «столбец», а внешний массив - ваша «строка». Точно так же, как с обычными 2d массивами.

При работе с оператором [] один самый дальний справа для внутреннего большинства массивов.

Смежные вопросы