Главная » Delphi » Delphi 2006 – Динамические многомерные массивы

0

Удобная возможность Delphi по поддержке динамических одномерных массивов (векторов переменной длины) в новой версии расширилась средствами организации многомерных динамических массивов. Ранее динамический массив создавался так.

var a: array of Integer;

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

array of array of array of … тип

Например, двумерный динамический массив может быть декларирован так.

var a: array of array of Integer;

Чтобы работать с таким массивом, сначала надо указать размер по первому измерению (фактически, количество одномерных массивов).

SetLength(а, 10);

А затем надо указать длину каждого из этих десяти одномерных массивов.

for i := 0 to 9 do

SetLength( a[i], 20 );

Вместо явных значений 0 и 9 (нижней и верхней границ массива) лучше использовать стандартные функции Low и High.

for i := Low(a) to High(a) do SetLength( a[i], 20 );

Обращение к отдельным элементам массива происходит обычным способом.

for х := Low( а[3] ) to High( а[3] ) do а[3,х] := 0;

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

for i := 0 to 9 do

SetLength( a[i], i+2 );

Здесь мы формируем двумерный массив, в котором будет 10 строк, но длина каждой из строк (количество элементов одномерного массива соответствующей строки) составит от 2 до 11 элементов.

Бобровский С. И. Технологии Delphi 2006. Новые возможности. — СПб.: Питер, 2006. — 288 е.: ил.

По теме:

  • Комментарии