Как в С++ удалить/добавить элементы в массив?

В языке программирования C++ для добавления или удаления элементов из массива можно использовать различные методы и подходы. Рассмотрим каждый из них подробнее.

Удаление элемента из массива:
1. Сдвиг: Можно удалить элемент из массива, сдвигая все элементы, находящиеся после удаляемого, на одну позицию влево. Например, если мы хотим удалить элемент с индексом i, мы можем выполнить следующий код:

for (int j = i; j < size - 1; j++) {
    array[j] = array[j + 1];
}
size--;

В этом коде мы начинаем с позиции i и переносим каждый элемент на одну позицию влево. Последний элемент массива "выпадает" из массива, и мы уменьшаем размер массива на 1.

2. Замена: В некоторых случаях можно удалить элемент, заменив его на другой элемент массива. Например, если нам не важно сохранить порядок элементов, мы можем заменить удаляемый элемент последним элементом массива:

array[i] = array[size - 1];
size--;

В этом коде мы копируем последний элемент массива в позицию, которую мы хотим удалить, а затем уменьшаем размер массива на 1.

Добавление элемента в массив:
1. Создание нового массива: Если мы хотим добавить элемент в массив, мы можем создать новый массив с увеличенным размером и скопировать все элементы из старого массива в новый массив, а затем добавить новый элемент в конец нового массива. Например:

int* newArray = new int[size + 1];
for (int i = 0; i < size; i++) {
    newArray[i] = array[i];
}
newArray[size] = newValue;
size++;

// Освобождаем память старого массива
delete [] array;

// Обновляем указатель на новый массив
array = newArray;

В этом коде мы создаем новый массив newArray с размером size + 1, копируем все элементы из старого массива в новый массив, добавляем новый элемент в конец нового массива, увеличиваем размер массива на 1 и освобождаем память, занимаемую старым массивом. Затем мы обновляем указатель на новый массив.

2. Использование вектора: Вместо работы с обычными массивами, мы можем использовать вектор — динамический массив, предоставляемый стандартной библиотекой C++. Векторы имеют методы для добавления и удаления элементов:

#include <vector>

std::vector<int> vector;

// Добавление элемента в конец вектора
vector.push_back(newValue);

// Удаление последнего элемента вектора
vector.pop_back();

// Удаление элемента по индексу
vector.erase(vector.begin() + index);

В этом коде мы создаем вектор vector, затем добавляем новый элемент в конец вектора с помощью метода push_back(). Если нам нужно удалить последний элемент вектора, мы можем использовать метод pop_back(). Если же мы хотим удалить элемент по определенному индексу, мы можем использовать метод erase() с указанием позиции элемента, который нужно удалить.

Это некоторые из способов добавления и удаления элементов из массива в языке C++. Выбор метода зависит от конкретной задачи и требований.