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

Vector Erase Function C



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

Синтаксис:

Два типа синтаксис на тази функция са дадени по -долу.







итератор изтриване(позиция на итератора);

Горната функция erase () се използва за премахване на един елемент от вектора и връща итератор и посочва елемента, последван от последния изтрит елемент.



итератор изтриване(итератор начална_позиция, итератор завършваща_позиция);

Горната функция erase () се използва за премахване на множество елементи от вектора въз основа на позицията, спомената в първия и втория аргумент на тази функция.



Предпоставка:

Преди да проверите примерите на този урок, трябва да проверите дали компилаторът g ++ е инсталиран или не в системата. Ако използвате Visual Studio Code, инсталирайте необходимите разширения, за да компилирате C ++ изходния код, за да създадете изпълним код. Тук приложението Visual Studio Code е използвано за компилиране и изпълнение на C ++ кода. По -долу са показани различни приложения на функцията erase () за вмъкване на елемент (и) във вектор.





Пример-1: Премахнете първия елемент елемент

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

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

#включва

#включва

използвайки пространство на именатачаса;

// Показване на стойностите на вектора

невалиденdisplay_vector(вектор<низ>плодове)

{

// Инициализиране на брояча

intброяч= 1;

// Итерация и отпечатване на елементите на вектора с помощта на цикъл

за (Автоматичентой=плодове.започнете();той!=плодове.край();той++)

{

// Проверете дали елементите са последният елемент или не

ако(брояч!=плодове.размер())

цена << *той<< ',';

иначе

цена << *той;

// Увеличете брояча с 1

брояч++;

}

цена <<endl;

}

intглавен(невалиден) {

// Деклариране на вектор от низови данни

вектор<низ>плодове= { 'Портокал','Банан','Манго','Джак Фрут','Lichi' };

// Отпечатайте съществуващите стойности на вектора

цена << 'Стойностите на вектора преди премахване:' <<endl;

display_vector(плодове);

// Премахване на първия елемент от вектора

плодове.изтрива(плодове.започнете());

// Отпечатайте съществуващите стойности на вектора след премахване

цена << 'нСтойностите на вектора след премахване: ' <<endl;

display_vector(плодове);

връщане 0;

}

Изход:

Следният изход ще се появи след изпълнение на горния код.



Пример-2: Премахване на множество елементи

Създайте C ++ файл със следния код, за да премахнете множеството елементи от вектора, като използвате функцията erase (). В кода е използван вектор от цели числа. Тук са използвани два итератора за задаване на обхвата на елементите, премахнати от вектора. Функцията erase () е използвана с два параметъра за премахване на множество елементи от вектора.

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

#включва

#включва

използвайки пространство на именатачаса;

// Показване на вектора

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

{

// Отпечатайте стойностите на вектора с помощта на цикъл

за(Автоматичентой=числа.започнете();той!=числа.край() ;той++)

цена << *той<< '';

// Добавяне на нов ред

цена << 'н';

}

intглавен() {

// Деклариране на вектор от целочислени данни

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

// Отпечатайте съществуващите стойности на вектора

цена << 'Стойностите на вектора преди премахване:' <<endl;

display_vector(intArray);

// Декларира два итератора, за да премахне диапазона от елементи от вектора

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

// Поставете итератора на първа позиция

startEle=intArray.започнете();

// Увеличете стартовия итератор с 2

аванс(startEle,2);

// Поставете итератора на последната позиция

endEle=intArray.край();

// Намаляваме крайния итератор с 3

аванс(endEle,-3);

// Премахване на диапазона от елементи

intArray.изтрива(startEle, endEle);

// Отпечатайте съществуващите стойности на вектора след премахване

цена << 'нСтойностите на вектора след премахване: ' <<endl;

display_vector(intArray);

връщане 0;

}

Изход:

Следният изход ще се появи след изпълнение на горния код. Според обхвата на итераторите, елементите от 3 -та позиция до 7 -ма позиция на вектора са премахнати.

Пример-3: Премахнете специфичните елементи

Създайте C ++ файл със следния код, за да премахнете специфичните елементи на вектора, използвайки функцията erase (). В кода е деклариран вектор от 7 цели числа. След това цикълът „for“ използва за повторение на векторните елементи и премахване на тези елементи от вектора, които не се делят на 5.

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

#включва

#включва

използвайки пространство на именатачаса;

intглавен()

{

// Деклариране на вектор от целочислени данни

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

цена << 'Стойностите на вектора преди премахване:н';

за (int const &i:числа) {

цена <<i<< '';

}

цена <<endl;

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

за (Автоматичентой=числа.започнете();той!=числа.край();той++)

{

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

ако (*той% 5 != 0)

{

// Премахване на елемента въз основа на итератора

числа.изтрива(той-);

}

}

цена << 'Стойностите на вектора след премахване:н';

за (int const &i:числа) {

цена <<i<< '';


}


цена <<endl;


връщане 0;

}

Изход:

Следният изход ще се появи след изпълнение на горния код. Резултатът показва, че векторът съдържа делимите елементи само с 5 и други елементи са премахнати.

Заключение:

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