void push_back(int*& arr, int& size,const int value)
{
int* newArray = new int[size+1];
for (int i = 0; i < size; i++)
{
newArray[i] = arr[i];
}
newArray[size] = value;
size++;
delete[] arr;
arr = newArray;
}
void pop_back(int*& arr, int& size)
{
size--;
int* newArray = new int[size];
for (int i = 0; i < size; i++)
{
newArray[i] = arr[i];
}
}
Первая функция - добавление одного элемента к массиву.
Вторая функия - удаление последнего элемента массива.
Обьясните и разжуйте как это работает, не врубаюсь совершенно.
Функция push_back добавляет один элемент в конец массива. Она принимает три параметра: указатель на массив arr, ссылку на переменную size, которая содержит текущий размер массива, и значение value, которое нужно добавить в конец массива.
Сначала создается новый массив newArray размером size+1 с помощью оператора new. Затем в цикле копируются все элементы из старого массива arr в новый массив newArray. На последнюю позицию в новом массиве записывается значение value. Затем размер массива увеличивается на 1 и освобождается память, занятая старым массивом arr с помощью оператора delete[]. На место указателя arr записывается адрес нового массива newArray.
Функция pop_back удаляет последний элемент массива. Она также принимает два параметра: указатель на массив arr и ссылку на переменную size.
Сначала размер массива уменьшается на 1. Затем создается новый массив newArray размером size с помощью оператора new. В цикле копируются все элементы из старого массива arr в новый массив newArray. Последний элемент не копируется, так как он был удален. Затем освобождается память, занятая старым массивом arr с помощью оператора delete[]. На место указателя arr записывается адрес нового массива newArray.
Обе функции используют динамическое выделение памяти с помощью оператора new и освобождение памяти с помощью оператора delete[]. Функция push_back увеличивает размер массива на 1, а функция pop_back уменьшает размер массива на 1.
Функция push_back добавляет один элемент в конец массива и изменяет его размер. Функция принимает три аргумента: указатель на массив arr, ссылку на переменную size, которая содержит текущий размер массива, и значение value, которое нужно добавить в конец массива.
Сначала функция создает новый массив newArray размером на 1 больше, чем исходный массив. Затем в цикле копирует все элементы из arr в newArray. После этого добавляет новый элемент value в конец newArray. Увеличивает значение size на 1. Затем удаляет исходный массив arr с помощью оператора delete[] и присваивает newArray указателю arr. В результате получаем массив с добавленным в конец элементом.
Функция pop_back удаляет последний элемент из массива и изменяет его размер. Функция также принимает два аргумента: указатель на массив arr и ссылку на переменную size.
Сначала функция уменьшает значение size на 1. Затем создает новый массив newArray размером на 1 меньше, чем исходный массив. Затем в цикле копирует все элементы из arr в newArray, кроме последнего элемента. Затем удаляет исходный массив arr и присваивает newArray указателю arr. В результате получаем массив с удаленным последним элементом.
Обе функции работают с массивами, выделенными в динамической памяти, поэтому после работы с массивом необходимо освободить память с помощью оператора delete[].