Перейти к основному содержимому

О2_Утилиты.Массив2DИзвестногоРазмера

Создаёт двумерный массив (массив массивов) заданных размеров. Корректно обрабатывает нулевые размеры: платформа 1С запрещает создание массива с явно указанным нулевым размером через конструктор Новый Массив(0), поэтому метод снимает это ограничение, возвращая в этом случае пустой массив.

Основной способ вызова — через фасад О2.Утилиты().Массив2DИзвестногоРазмера(...).

Синтаксис

О2.Утилиты().Массив2DИзвестногоРазмера(Размер1, Размер2)

Параметры

  • Размер1Число — количество строк (длина внешнего массива). Допускается значение 0.
  • Размер2Число — количество столбцов (длина каждого внутреннего массива). Допускается значение 0.

Возвращаемое значение

  • Массив — внешний массив длины Размер1; каждый его элемент — массив длины Размер2. Все ячейки инициализированы значением Неопределено.

Описание

Метод предназначен для случаев, когда требуется заранее аллоцировать двумерный массив фиксированных размеров — например, под матрицу расстояний между узлами графа, матрицу коэффициентов или таблицу совместимости. Без этого метода каждое такое место требует двух циклов с защитной проверкой нулевой длины.

В коде метод вызывается через фасад О2.Утилиты(), который возвращает общий модуль О2_Утилиты. Основная форма вызова — О2.Утилиты().Массив2DИзвестногоРазмера(...).

Пример

Заполнение матрицы расстояний между точками через фасад О2.Утилиты().Массив2DИзвестногоРазмера(...):

Расстояния = О2.Утилиты().Массив2DИзвестногоРазмера(Точки.Количество(), Точки.Количество());
Для К = 0 По Точки.ВГраница() Цикл
Для К1 = 0 По Точки.ВГраница() Цикл
Расстояния[К][К1] = ?(К = К1, 0,
Abs(Точки[К1].X - Точки[К].X)
+ Abs(Точки[К1].Y - Точки[К].Y));
КонецЦикла;
КонецЦикла;

См. также