Есть ли простой способ подделать многомерный массив неизвестного размера, используя плоский? У меня есть приложение, в котором 90% использования массива будет проще/быстрее без использования рекурсии и единственного требования, которое должно добавить некоторую глубину в массив. Единственный способ, которым я могу думать об этом будет держать бегущий список стартовых показателей и конечных показателей, где массив 1D будет выглядеть следующим образом:Поддельный многомерный массив с плоским?
[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
Это будет работать с более чем 2-х измерениях, но на тот момент у меня возникает проблемы выяснить час ow, чтобы определить, какая глубина I была указана в индексе в исходном массиве 1D и в начальных/конечных списках. Мне также сложно определить, какие поисковые термины использовать для поиска такого типа вещей. Любые общие рекомендации/идеи будут оценены. Благодарю.
Редактировать - Чтобы дать некоторый контекст, это для поддержки вложенных транзакций в реализации шаблона команды. 1D-массив содержит команды, а искусственная глубина только там, чтобы давать имена каждой транзакции. Поскольку транзакции будут использоваться экономно, кажется очевидным, что быстрый переход к небольшому списку int будет быстрее, чем рекурсивно проходить через многомерный массив команд и проверять в каждом индексе, была ли или нет одна команда или массив команд внутри.
Мне кажется, что любые выгоды, которые вы получите от избежания рекурсии (и почему вам нужно было бы списать?), Будут разжевываться из-за боли в поддержании этих искусственных глубин. –
Вы думаете, что жонглирование вокруг трех отдельных массивов будет лучше, чем рекурсия и реальные многомерные массивы? Я надеюсь, что вы проведете значительный сравнительный анализ, прежде чем идти по этому пути. – meagar
@Marc B & @meagar: см. Правки, которые дают немного больше контекста. – Ocelot20