Есть ли простой способ подделать многомерный массив неизвестного размера, используя плоский? У меня есть приложение, в котором 90% использования массива будет проще / быстрее без использования рекурсии, и единственное требование, которое должно добавить глубину массиву. Единственный способ, которым я могу думать об этом, - это сохранить текущий список начальных и конечных индексов, где одномерный массив будет выглядеть так:
[0] = 1
[1] = 2
[2] = 3
[3] = 4
[4] = 5
... и начальный / конечный списки будут выглядеть так:
Start End
----- ---
[0] = 1 [0] = 2
[1] = 3 [1] = 4
Что представляет собой многомерный массив, который выглядит следующим образом:
[0] = 1
[1] = [0] = 2
[1] = 3
[2] = [0] = 4
[1] = 5
Это будет работать с более чем двумя измерениями, но в этот момент у меня возникают проблемы с выяснением того, как определить, на какой глубине у меня был индекс по исходному массиву 1D и спискам начала / конца. Мне также трудно понять, какие поисковые термины использовать для поиска подобных вещей. Любое общее руководство / идеи будут оценены. Благодаря.
Редактировать - Чтобы дать некоторый контекст, это для поддержки вложенных транзакций в реализации шаблона команды. Массив 1D содержит команды, а искусственные глубины предназначены только для присвоения имен каждой транзакции. Поскольку транзакции будут использоваться экономно, кажется очевидным, что быстрое прохождение небольшого списка целых будет быстрее, чем рекурсивное прохождение многомерного массива команд и проверка по каждому индексу, была ли единственная команда или нет. массив команд внутри.