![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Объявление многомерных массивов
Многомерные массивы определяются аналогично одномерным массивам. Количество элементов по каждому измерению указывается отдельно в квадратных скобках:
int A1 [5] [3]; // Двумерный массив, элементами которого являются // значения типа int double D [10] [15] [3]; // Трехмерный массив, элементами которого являются // значения типа double
Здесь массив A1 представляет собой обычную двумерную матрицу из 5-ти строк и 3–х столбцов. Массив D – трехмерный массив, который можно представить как трехмерный параллелограмм, навранный из 3-х двумерных матриц. Общее число элементов в многомерном массиве определяется как произведение количества элементов по каждому измерению. Так, например, массив D содержит 10 * 15 * 3 = 450 элементов типа double, а объем памяти, требующийся для этого массива, будет равен 450 * 4 = 1800 байтам. Массивы с большим, чем 3, количеством измерений используются достаточно редко. Одной из причин этого является быстрый рост объема памяти, необходимой для размещения таких массивов. В следующей таблице показана схема размещения элементов массива A1 в памяти:
Так же как и в одномерном массиве, элементы многомерных массивов располагаются друг за другом в непрерывном участке памяти. При определении многомерные массивы могут инициализироваться определенными значениями. Для получения массива A1 с теми значениями элементов, которые приведены в таблице, можно инициализировать массив следующим образом:
int A1 [5] [3] = { 1, 1, 1, 2, 4, 8, 3, 9, 27, 4, 16, 64, 5, 25, 125 }; или так:
int A1 [ ] [3] = { 1, 1, 1, 2, 4, 8, 3, 9, 27, 4, 16, 64, 5, 25, 125 };
Во втором определении опущен размер массива по первому индексу, при этом автоматически ему назначается значение 5 в соответствии с инициализирующими значениями. Размеры массивов по второму и по следующим индексам опускать нельзя. Для доступа к определенному элементу многомерного массива необходимо указать в квадратных скобках конкретные значения всех индексов этого элемента. Например:
cout < < A1 [1] [2]; // На экран выведено значение 8 Ввод-вывод массивов Ранее были рассмотрены приемы ввода-вывода простых предопределенных типов данных (int, double, char и bool) с помощью потоков ввода и вывода. Стандартные потоки ввода и вывода не “умеют” работать с массивами, поэтому ввод и вывод массивов необходимо реализовывать самостоятельно, обрабатывая массивы поэлементно. Большинство алгоритмов по обработке массивов реализуются с помощью циклов. Ввод и вывод массивов не являются исключением. Начнем с рассмотрения операций вывода значений элементов массивов на экран.
|