Главная страница
Навигация по странице:

  • По определению, каждый элемент характеризуется двумя индексами – номером строки и номером столбца . Статические матрицы в С++ описываются следующим образом

  • Элементы при такой инициализации элементы записываются построчно, то есть элементы строки с номером 0 – {1,2} , строки с номером 1 – {3,4} .

  • Обязательно выделение памяти, которое проводится по следующему алгоритму: 1.

  • Под каждый элемент полученного массива указателей выделяется память под одномерный массив. Пример.

  • // количество столбцов M = new int* [n]; for(int i=0; i M[i] = new int [m];

  • Многомерные массивы. Float y54 вещественная матрица из 5ти строк и 4х столбцов. Обращение к элементу матрицы, находящемуся в iтой строке и jтом столбце yij


    Скачать 13.71 Kb.
    НазваниеFloat y54 вещественная матрица из 5ти строк и 4х столбцов. Обращение к элементу матрицы, находящемуся в iтой строке и jтом столбце yij
    АнкорМногомерные массивы
    Дата10.02.2022
    Размер13.71 Kb.
    Формат файлаdocx
    Имя файлаМногомерные массивы.docx
    ТипДокументы
    #357276

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

    При работе с многомерными массивами чаще всего используют матрицы. Матрица – это таблица однотипных данных, имеющая заданное количество строк и столбцов.

    По определению, каждый элемент характеризуется двумя индексами – номером строки и номером столбца. Статические матрицы в С++ описываются следующим образом:

    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;


    написать администратору сайта