Динамический массив в языке программирования C++
расширением и уменьшением
Динамический массив - это массив, который может менять свой размер во время выполнения программы. Такой массив создается с помощью динамического выделения памяти. В языке программирования С++ для создания динамических массивов используется оператор new.
Вполне естественно, что динамический массив должен поддерживать возможность расширения и уменьшения его размера. Для этого мы можем написать методы, которые будут выполнять соответствующие операции.
Расширение массива:
Для расширения массива мы можем создать новый массив с большим размером и переписать в него все элементы из старого массива. При этом старый массив нужно удалить. Код для расширения массива может выглядеть так:
c++
void extendArr(int* &arr, int size, int newSize) {
int* newArr = new int[newSize];
for(int i=0; i
Здесь `int* &arr` - ссылка на указатель на массив, `size` - текущий размер массива, `newSize` - новый размер массива. Сначала мы создаем новый массив с помощью оператора new. Затем копируем все элементы из старого массива в новый. После этого удаляем старый массив и присваиваем переменной `arr` значение нового массива.
Уменьшение массива:
Для уменьшения массива можно поступить по-разному. Мы можем либо создать новый массив с меньшим размером и переписать в него элементы из старого массива. Либо мы можем изменить размер уже существующего массива, удалив некоторые элементы.
Код для изменения размера массива может выглядеть так:
c++
void shrinkArr(int* &arr, int size, int newSize) {
int* newArr = new int[newSize];
for(int i=0; i
Здесь мы создаем новый массив с размером `newSize`, копируем в него элементы из старого массива, удаляем старый массив и присваиваем переменной `arr` значение нового массива.
Пример использования расширяемого массива:
c++
int main() {
int size = 5, capacity = 5; // начальный размер и вместимость массива
int *arr = new int[capacity];
for(int i=0; i
В этом примере мы создаем массив с начальным размером и вместимостью 5. Затем заполняем его элементами от 1 до 5. Потом расширяем массив до 10 элементов с помощью метода `extendArr`. Добавляем новый элемент в массив и ужимаем массив до 5 элементов с помощью метода `shrinkArr`.
После использования динамического массива его нужно удалить с помощью оператора `delete[]`.