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

Что такое вектор в C++ Программирование и разработка

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

Синтаксис:

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

iterator erase (iterator position);

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

iterator erase (iterator starting_position, iterator ending_position);

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

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

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

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

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

//Include necessary libraries

#include <iostream>

#include <vector>

using namespace std;

//Display the values of the vector

void display_vector(vector<string> fruits)

{

//Initialize the counter

int counter = 1;

//Iterate and print the elements of the vector using loop

for (auto ele = fruits.begin(); ele != fruits.end(); ele++)

{

//Check the elements is the last element or not

if(counter != fruits.size())

cout << *ele << «, «;

else

cout << *ele;

//Increment the counter by 1

counter++;

}

cout << endl;

}

int main(void) {

//Declare a vector of string data

vector<string> fruits = { «Orange»«Banana»«Mango»«Jack Fruit»«Lichi» };

//Print the existing values of the vector

cout << «The values of the vector before remove: « << endl;

display_vector(fruits);

//Remove the first element from the vector

fruits.erase(fruits.begin());

//Print the existing values of the vector after remove

cout << «\nThe values of the vector after remove: « << endl;

display_vector(fruits);

return 0;

}

Выход:

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

Следующий вывод появится после выполнения

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

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

//Include necessary libraries

#include <vector>

#include <iostream>

using namespace std;

//Display the vector

void display_vector(vector<int> nums)

{

//Print the values of the vector using loop

for(auto ele = nums.begin(); ele != nums.end() ; ele++)

cout << *ele << » «;

//Add new line

cout << «\n«;

}

int main() {

//Declare a vector of integer data

vector <int> intArray { 678435960231800387634267409294};

//Print the existing values of the vector

cout << «The values of the vector before remove: « << endl;

display_vector(intArray);

//Declare two iterators to remove the range of elements from the vector

vector<int> :: iterator startEle, endEle;

//Set the iterator to the first position

startEle = intArray.begin();

//Increment the starting iterator by 2

advance(startEle, 2);

//Set the iterator to the last position

endEle = intArray.end();

//Decrement the ending iterator by 3

advance(endEle, 3);

//Remove the range of elements

intArray.erase(startEle, endEle);

//Print the existing values of the vector after remove

cout << «\nThe values of the vector after remove: « << endl;

display_vector(intArray);

return 0;

}

Выход:

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

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

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

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

//Include necessary libraries

#include <iostream>

#include <vector>

using namespace std;

int main()

{

//Declare a vector of integer data

vector<int> numbers = { 78456725987552 };

cout << «The values of the vector before remove:\n«;

for (int const &i: numbers) {

cout << i << ‘ ‘;

}

cout << endl;

//Remove the numbers from the vector those are not divisible by 5

for (auto ele = numbers.begin(); ele != numbers.end(); ele++)

{

//Check the number is divisible by 5 or not

if (*ele % 5 != 0)

{

//Remove the element based on the iterator

numbers.erase(ele);

}

}

cout << «The values of the vector after remove:\n«;

for (int const &i: numbers) {

cout << i << ‘ ‘;

}

cout << endl;

return 0;

}

Выход:

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

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

Заключение

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

Читайте также:  Как разработать корпоративное приложение с помощью Java
Оцените статью
bestprogrammer.ru
Добавить комментарий