Описание проблемы: мы хотим разработать простой массив, размер которого можно определить во время выполнения, а его многомерный эквивалент можно будет легко передать функциям.
Предпосылки: Общие алгоритмы, требующие использования 2-х или более многомерных контейнеров, могут быть трудны для написания, если мы полагаемся исключительно на массив C-стиля по умолчанию, предоставляемый C++.
Проблема с этим кодом заключается в том, что я должен явно определить размер столбца массива X. Я хочу иметь возможность написать что-то вроде этого
или что-то вроде этого
Использование вектора вектора в некоторых случаях может вызвать фрагментацию памяти, поэтому я выбираю простой массив, такой как базовый массив в стиле C. Здесь я представляю простой 1, 2, 3-мерный контейнер-массив, размер которого можно передавать во время выполнения.
Я хочу, чтобы мой предложенный массив был максимально простым, поэтому я предоставляю только оператор доступа.
Решение:
Код показан ниже:
Пример:
Ниже показан пример его использования. Наш простой массив еще более универсален, поскольку мы также можем использовать его как одномерный массив. Но следует соблюдать осторожность.
при вызове с входным файлом
Мы получили
Примечание. Этот простой массив будет моим контейнером по умолчанию для всех моих алгоритмических сообщений.