Функция Vector Erase () в C ++

Vector Erase Function C



Массив используется для хранения нескольких данных, и количество элементов массива не может быть изменено во время выполнения. Эту проблему можно решить, используя вектор, который работает как динамический массив. В классе вектора существуют различные функции для добавления и удаления элемента из вектора. Функция erase () используется для удаления одного или нескольких элементов из вектора во время выполнения, что уменьшает размер вектора. Использование этой функции было объяснено в этом руководстве.

Синтаксис:

Ниже приведены два типа синтаксиса этой функции.







итератор стереть(позиция итератора);

Вышеупомянутая функция erase () используется для удаления одного элемента из вектора, она возвращает итератор и указывает на элемент, за которым следует последний удаленный элемент.



итератор стереть(начальная_позиция итератора, конечная_позиция итератора);

Вышеупомянутая функция erase () используется для удаления нескольких элементов из вектора на основе позиции, указанной в первом и втором аргументах этой функции.



Предварительные условия:

Прежде чем проверять примеры этого руководства, вы должны проверить, установлен ли компилятор g ++ в системе. Если вы используете Visual Studio Code, установите необходимые расширения для компиляции исходного кода C ++ и создания исполняемого кода. Здесь приложение Visual Studio Code было использовано для компиляции и выполнения кода C ++. Ниже показаны различные варианты использования функции erase () для вставки элемента (ов) в вектор.





Пример-1: удалить первый элемент element

Создайте файл C ++ со следующим кодом, чтобы удалить элемент из начала вектора. В коде использован вектор строковых значений. Значения вектора были напечатаны до и после удаления первого элемента из вектора с помощью функции erase () с одним параметром.

// Включаем необходимые библиотеки

#включают

#включают

с использованием пространство именчасы;

// Отображаем значения вектора

пустотаdisplay_vector(вектор<нить>фрукты)

{

// Инициализируем счетчик

intприлавокзнак равно 1;

// Итерировать и распечатать элементы вектора с помощью цикла

для (автоонзнак равнофрукты.начинать();он!знак равнофрукты.конец();он++)

{

// Проверяем элементы, последний элемент или нет

если(прилавок!знак равнофрукты.размер())

Стоимость << *он<< ',';

еще

Стоимость << *он;

// Увеличиваем счетчик на 1

прилавок++;

}

Стоимость <<конец;

}

intглавный(пустота) {

// Объявление вектора строковых данных

вектор<нить>фруктызнак равно { 'Апельсин','Банан','Манго','Джек Фрут','Личи' };

// Распечатываем существующие значения вектора

Стоимость << 'Значения вектора перед удалением:' <<конец;

display_vector(фрукты);

// Удаляем первый элемент из вектора

фрукты.стереть(фрукты.начинать());

// Распечатываем существующие значения вектора после удаления

Стоимость << ' пЗначения вектора после удаления: ' <<конец;

display_vector(фрукты);

возвращение 0;

}

Выход:

Следующий вывод появится после выполнения вышеуказанного кода.



Пример-2: удалить несколько элементов

Создайте файл C ++ со следующим кодом, чтобы удалить несколько элементов из вектора с помощью функции erase (). В коде использован вектор целочисленных значений. Здесь используются два итератора для установки диапазона элементов, удаленных из вектора. Функция erase () использовалась с двумя параметрами для удаления нескольких элементов из вектора.

// Включаем необходимые библиотеки

#включают

#включают

с использованием пространство именчасы;

// Отображаем вектор

пустотаdisplay_vector(вектор<int>числа)

{

// Распечатываем значения вектора с помощью цикла

для(автоонзнак равночисла.начинать();он!знак равночисла.конец() ;он++)

Стоимость << *он<< '';

// Добавляем новую строку

Стоимость << ' п';

}

intглавный() {

// Объявление вектора целочисленных данных

вектор<int>intArray{ 678,435,960,231,800,387,634,267,409,294};

// Распечатываем существующие значения вектора

Стоимость << 'Значения вектора перед удалением:' <<конец;

display_vector(intArray);

// Объявляем два итератора для удаления диапазона элементов из вектора

вектор<int> :: итераторstartEle, endEle;

// Устанавливаем итератор в первую позицию

startEleзнак равноintArray.начинать();

// Увеличиваем начальный итератор на 2

продвигать(startEle,2);

// Устанавливаем итератор в последнюю позицию

endEleзнак равноintArray.конец();

// Уменьшаем конечный итератор на 3

продвигать(endEle,-3);

// Удаляем диапазон элементов

intArray.стереть(startEle, endEle);

// Распечатываем существующие значения вектора после удаления

Стоимость << ' пЗначения вектора после удаления: ' <<конец;

display_vector(intArray);

возвращение 0;

}

Выход:

Следующий вывод появится после выполнения вышеуказанного кода. В соответствии с диапазоном итераторов удалены элементы с 3-й по 7-ю позицию вектора.

Пример-3: Удалить определенные элементы

Создайте файл C ++ со следующим кодом, чтобы удалить определенные элементы вектора с помощью функции erase (). В коде объявлен вектор из 7 целочисленных элементов. Затем цикл «for» использовался для перебора элементов вектора и удаления из вектора тех элементов, которые не делятся на 5.

// Включаем необходимые библиотеки

#включают

#включают

с использованием пространство именчасы;

intглавный()

{

// Объявление вектора целочисленных данных

вектор<int>числазнак равно { 78,Четыре пять,67,25,98,75,52 };

Стоимость << 'Значения вектора перед удалением: п';

для (int const &я:числа) {

Стоимость <<я<< '';

}

Стоимость <<конец;

// Удаляем из вектора числа, не делящиеся на 5

для (автоонзнак равночисла.начинать();он!знак равночисла.конец();он++)

{

// Проверяем, делится ли число на 5 или нет

если (*он% 5 !знак равно 0)

{

// Удаляем элемент на основе итератора

числа.стереть(он-);

}

}

Стоимость << 'Значения вектора после удаления: п';

для (int const &я:числа) {

Стоимость <<я<< '';


}


Стоимость <<конец;


возвращение 0;

}

Выход:

Следующий вывод появится после выполнения вышеуказанного кода. Выходные данные показывают, что вектор содержит только элементы, кратные 5, а другие элементы были удалены.

Заключение:

В этом уроке были показаны различные варианты использования функции erase () для удаления векторных элементов. В C ++ есть много других функций для удаления элемента из вектора, и эти функции могут удалять по одному элементу за раз. Но как одиночные, так и множественные элементы из любой позиции вектора могут быть удалены с помощью функции vector erase ().