Помогите разобраться с созданием массива: задача в том, чтобы динамически построить массив с произвольным количеством измерений и их произвольной глубиной. На вход поступает одномерный массив int ndims[] с произвольным (n) количеством элементов, где i-ый элемент определяет глубину i-го измерения целевого массива, а количество его измерений, соответственно, равно n Алгоритм мне вроде и понятен: создаем массив глубиной ndims[0] с указателями, затем создаем ndims[0] количество массивов глубиной ndims[1] и присваиваем их адреса элементам первого массива, и так далее для каждого из созданных (можно оформить рекуррентно). На бэйсике я бы это написал, так как там любой "указатель" - это банально integer, содержащий адрес в памяти, нет никаких проблем с присваиванием и преобразованием. Но у меня маленький опыт писания на C++, я не слишком хорошо владею этим языком и абсолютно не понимаю, как реализовать это всё на нем. Хотелось бы получить вашу помощь, заранее спасибо!
Ответ
Можно представить массив в виде дерева. Динамический массив динамических массивов динамических массивов и т.д..
template
Комментариев нет:
Отправить комментарий