Многомерные массивы
Автор: pakihoi • Февраль 23, 2022 • Лекция • 380 Слов (2 Страниц) • 202 Просмотры
Многомерные массивы
При работе с многомерными массивами чаще всего используют
матрицы. Матрица – это таблица однотипных данных, имеющая
заданное количество строк и столбцов.
По определению, каждый элемент характеризуется двумя индексами –
номером строки и номером столбца. Статические матрицы в С++
описываются следующим образом:
float y[5][4]; // вещественная матрица из 5-ти строк и 4-х столбцов.
Обращение к элементу матрицы, находящемуся в i-той строке и j-том
столбце – y[i][j]. Всегда первый индекс – номер строки, второй индекс –
номер столбца.
Инициализация элементов статической матрицы может выполняться
при описании:
int z[2][2] = {1,2,3,4};
Элементы при такой инициализации элементы записываются
построчно, то есть элементы строки с номером 0 – {1,2}, строки с
номером 1 – {3,4}.
При работе с матрицами разной размерности возможно использование
динамических матриц. Если одномерный массив описывается в С++ как
указатель, матрица описывается как указатель на указатель.
Обязательно выделение памяти, которое проводится по следующему
алгоритму:
1 Под указатель на указатель выделяется память под массив указателей
(каждый элемент этого массива сам будет массивом).
2 Под каждый элемент полученного массива указателей выделяется
память под одномерный массив.
Пример. Опишем динамическую матрицу и выделим память для
элементов такой матрицы.
int **M;
int n = 10; // количество строк
int m = 5; // количество столбцов
M = new int* [n];
for(int i=0; i<n; i++)
M[i] = new int [m];
Освобождение занятой памяти происходит в обратном порядке:
for(int i=0; i<n; i++)
delete [] M[i];
delete [] M;
Структуры
Для создания сложных типов данных в языке С++ используется тип
данных – структура.
Синтаксис описания структуры:
struct [имя]
{ тип поле1;
тип поле2;
…
}
...