Многомерные массивы в C++

Многомерные массивыВ предыдущей статье мы с вами обсуждали только одномерные массивы. Но в этой статье мы пройдем немного дальше.

Вы должны знать, что C++ поддерживает массивы с более чем одним измерением. Такие массивы называются многомерными. Многомерные массивы обычно упорядочиваются в табличной форме, т. е. по строкам.

Многомерные массивы

Рассмотрим многомерный массив размеров 3×2, т.е. 3 строки и 2 столбца.

Представим этот массив следующим образом:

R1c1 R2c2
R2c1 R2c2
R3c1 R3c2

Как показано в приведенном выше представлении, каждая ячейка, например R1C1 , будет содержать содержимое массива.

Количество элементов, присутствующих в многомерном массиве, является произведением его размеров. Это означает, что если размеры массива равны 3×2, то количество элементов в этом массиве равно произведению 3 и 2, т.е. 6. Точно так же, если размеры многомерного массива равны [10][20][10] тогда количество элементов в этом массиве равно 10*20*10 = 2000.

Двумерный массив — это простейшая форма многомерного массива, используемого в C++.

Объявление массива

Общее объявление многомерного массива в C++ показано ниже:

Читать также:  Массивы C++ с примерами

dataType — это тип данных массива. Тип данных должен поддерживаться C++.

arrayName — имя многомерного массива.

Size1, size2….sizen — размеры каждого из измерений массива.

Например, давайте объявим массив размером 3×2, то есть двумерный массив, myarray_2d.

Двумерный массив представляется в виде строк и столбцов.

Таким образом, приведенное выше объявление массива можно представить следующим образом:

myarray_2d[0][0] myarray_2d[0][1]
myarray_2d[1][0] myarray_2d[1][1]
myarray_2d[2][0] myarray_2d[2][1]

Как показано в приведенном выше представлении, доступ к каждому элементу двумерного массива осуществляется как myarray_2d[i][j], где i — номер строки в диапазоне от 0 до n-1, где n — размер измерения, а j — размер. номер столбца в диапазоне от 0 до m-1, где m — размер столбца.

Инициализация многомерных массивов

Мы можем инициализировать многомерные массивы аналогично одномерным массивам. Многомерные массивы инициализируются построчно.

Есть два способа, с помощью которых мы можем инициализировать многомерные массивы.

1) Рассмотрим массив размерностей [3][2] с именем myarray:

Здесь инициализация массива осуществляется слева направо построчно. Поскольку размеры равны [3][2], первые два элемента образуют первую строку и так далее.

Читать также:  Итераторы в STL

Графическое представление этой инициализации будет выглядеть так, как показано ниже:

1 2
3 4
5 6

2) Тот же самый массив, показанный выше, можно инициализировать другим способом, как показано ниже:

Здесь инициализация выполняется слева направо, и каждый элемент соответствует одной строке. Поскольку в этом массиве три строки, у нас есть три внутренних элемента, заключенных в фигурные скобки ({}).

Такой способ инициализации более читабелен и удобен при увеличении размера массива.

Доступ к многомерным массивам

Доступ к элементам многомерного массива осуществляется с использованием индекса строки и индекса столбца.

Давайте посмотрим на пример двумерного массива с размерами [3][3]. Ниже приведен код для его инициализации:

Если мы хотим получить доступ ко второму элементу в первой строке и присвоить его целочисленной переменной, тогда строка кода будет такой:

Ниже приведен пример программы, демонстрирующей объявление, инициализацию и доступ к двумерному массиву:

Вывод данных:

1 2 3 4 5 6 7 8 9

Как показано в приведенной выше программе, двумерный массив объявляется, а затем инициализируется. Затем, чтобы получить доступ ко всем элементам массива и распечатать их, мы установили два цикла for. Внешний цикл for предназначен для доступа к элементам построчно. Внутренний цикл for действует как счетчик для доступа к элементам в каждом столбце.

Читать также:  Математические функции С++: absolutevalue, sqrt, max, pow и другие

Таким образом мы получаем доступ к каждому элементу этого двумерного массива и видим его на экране.

Вывод

Многомерные массивы могут иметь любое количество измерений, и по мере увеличения количества измерений соответственно увеличивается и сложность.

Хотя мы использовали двумерные массивы во всех приведенных выше примерах, мы можем аналогичным образом кодировать массивы с более высокими размерностями.

В следующей статье мы с вами поговорим о том, как использовать массивы с функциями В C++.

С Уважением, МониторБанк

Добавить комментарий