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

Предпосылки: Общие алгоритмы, требующие использования 2-х или более многомерных контейнеров, могут быть трудны для написания, если мы полагаемся исключительно на массив C-стиля по умолчанию, предоставляемый C++.

Проблема с этим кодом заключается в том, что я должен явно определить размер столбца массива X. Я хочу иметь возможность написать что-то вроде этого

или что-то вроде этого

Использование вектора вектора в некоторых случаях может вызвать фрагментацию памяти, поэтому я выбираю простой массив, такой как базовый массив в стиле C. Здесь я представляю простой 1, 2, 3-мерный контейнер-массив, размер которого можно передавать во время выполнения.

Я хочу, чтобы мой предложенный массив был максимально простым, поэтому я предоставляю только оператор доступа.

Решение:

Код показан ниже:

Пример:

Ниже показан пример его использования. Наш простой массив еще более универсален, поскольку мы также можем использовать его как одномерный массив. Но следует соблюдать осторожность.

при вызове с входным файлом

Мы получили

Примечание. Этот простой массив будет моим контейнером по умолчанию для всех моих алгоритмических сообщений.