Инструкция
1
Основная суть динамического массива заключается в выделении памяти под хранящиеся в нем данные именно в том размере, в котором это необходимо на данный момент. Удобнее всего данную конструкцию реализовать в виде класса – оболочки для массива. Здесь необходимо предусмотреть все функции, выполняющие выделение и освобождение памяти под массив, а также операторы, обеспечивающие доступ к его элементам.
2
Создайте объект класса-оболочки динамического массива, при этом конструктор автоматически выделит память указанного размера. Если по мере заполнения массива память под элементы будет занята полностью, при добавлении очередных данных производятся следующие действия:– вся информация из массива сохраняется во временном хранилище (вспомогательный массив);– ранее выделенная память освобождается специальной командой (free, delete);– выделяется память под массив того размера, который требуется для вмещения всех данных;– в новый массив из временного хранилища помещаются все «старые» значения и добавляется новый элемент.
3
Наиболее оптимальным вариантом работы с динамическими массивами является использование уже существующих библиотечных классов. Одним из самых распространенных примеров можно назвать класс vector. В него включены все необходимые для функционирования изменяемого массива функции и итераторы. Причем библиотечный модуль, содержащий данный класс, поставляется с любой версией компилятора языка С++.
4
Подключите библиотеку динамического массива с помощью команды #include. Для создания объекта используйте класс vector. Перемещение по массиву происходит так же, как и в обычном случае, с помощью индексов. Особенными здесь являются функции добавления и удаления новых элементов, а также ряд вспомогательных методов.Пример кода создания и работы динамического массива vector:#include vector;vector int Mass; // объявление динамического массива с элементами типа intMas.push_back(10); // добавление первого элемента – числа 10 Mas.push_back(15); // добавление второго элемента – числа 15Mas[1] = 30; // во второй элемент записывается число 30Mas.pop_back(); // удаление последнего элемента массива Здесь при создании динамического массива с именем Mass обязательно указывается тип его элементов (int), размерность в данном случае не задается.