Многомерные массивы. Float y54 вещественная матрица из 5ти строк и 4х столбцов. Обращение к элементу матрицы, находящемуся в iтой строке и jтом столбце yij
Скачать 13.71 Kb.
|
Многомерные массивы При работе с многомерными массивами чаще всего используют матрицы. Матрица – это таблица однотипных данных, имеющая заданное количество строк и столбцов. По определению, каждый элемент характеризуется двумя индексами – номером строки и номером столбца. Статические матрицы в С++ описываются следующим образом: 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 M[i] = new int [m]; Освобождение занятой памяти происходит в обратном порядке: for(int i=0; i delete [] M[i]; delete [] M; |