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

Funkcia Vector Erase V C



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

Синтаксис:

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







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

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



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

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



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

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





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

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

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

#include

#include <вектор>

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

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

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

{

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

вътр брояч = 1 ;

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

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

{

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

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

cout << * той << ', ' ;

друго

cout << * той ;

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

брояч ++ ;

}

cout << endl ;

}

вътр основен ( невалиден ) {

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

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

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

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

дисплей_вектор ( плодове ) ;

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

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

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

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

дисплей_вектор ( плодове ) ;

връщане 0 ;

}

Изход:

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



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

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

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

#include <вектор>

#include

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

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

невалиден дисплей_вектор ( вектор < вътр > числа )

{

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

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

cout << * той << ' ' ;

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

cout << ' ' ;

}

вътр основен ( ) {

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

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

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

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

дисплей_вектор ( intArray ) ;

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

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

//Задаване на итератора на първа позиция

започнете ги = intArray. започвам ( ) ;

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

аванс ( започнете ги, 2 ) ;

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

endEle = intArray. край ( ) ;

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

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

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

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

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

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

дисплей_вектор ( intArray ) ;

връщане 0 ;

}

Изход:

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

Пример-3: Премахнете конкретните елементи

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

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

#include

#include <вектор>

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

вътр основен ( )

{

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

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

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

за ( вътр конст и аз : числа ) {

cout << аз << ' ' ;

}

cout << endl ;

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

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

{

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

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

{

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

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

}

}

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

за ( вътр конст и аз : числа ) {

cout << аз << ' ' ;


}


cout << endl ;


връщане 0 ;

}

Изход:

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

Заключение:

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