О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));
КонецЦикла;
КонецЦикла;
См. также
- Утилиты.МассивИзвестногоРазмера — создание одномерного массива заданного размера с поддержкой нулевого размера;
- Утилиты.Массив — создание массива из перечисленных значений;
- Утилиты.Точка2D — конструктор точки на плоскости (типичное содержимое ячеек матрицы координат);
- Утилиты (обзор) — все вспомогательные методы.