Niz se koristi za pohranjivanje više podataka, a broj elemenata niza ne može se mijenjati tijekom izvođenja. Ovaj problem se može riješiti korištenjem vektora koji radi kao dinamički niz. U klasi vektora postoje različite funkcije za dodavanje i uklanjanje elementa iz vektora. Funkcija erase() koristi se za uklanjanje jednog ili više elemenata iz vektora tijekom vremena izvođenja koje smanjuje veličinu vektora. Upotreba ove funkcije objašnjena je u ovom vodiču.
Sintaksa:
Dolje su navedene dvije vrste sintakse ove funkcije.
brisanje iteratora ( pozicija iteratora ) ;
Gornja funkcija erase() koristi se za uklanjanje jednog elementa iz vektora i vraća iterator koji pokazuje na element iza kojeg slijedi zadnji izbrisani element.
brisanje iteratora ( početni_položaj iteratora, završni_položaj iteratora ) ;
Gornja funkcija erase() koristi se za uklanjanje više elemenata iz vektora na temelju položaja spomenutog u prvom i drugom argumentu ove funkcije.
Preduvjet:
Prije provjere primjera ovog vodiča, morate provjeriti je li g++ prevodilac instaliran ili ne u sustavu. Ako koristite Visual Studio Code, tada instalirajte potrebna proširenja za kompajliranje C++ izvornog koda za stvaranje izvršnog koda. Ovdje je korištena aplikacija Visual Studio Code za kompajliranje i izvođenje C++ koda. Dolje su prikazane različite upotrebe funkcije erase() za umetanje elementa(a) u vektor.
Primjer-1: Uklonite prvi element elementa
Stvorite C++ datoteku sa sljedećim kodom za uklanjanje elementa s početka vektora. U kodu je korišten vektor vrijednosti niza. Vrijednosti vektora ispisane su prije i nakon brisanja prvog elementa iz vektora pomoću funkcije erase() s jednim parametrom.
//Uključi potrebne biblioteke#include
#uključi
korištenjem imenski prostor std ;
//Prikaz vrijednosti vektora
poništiti prikaz_vektora ( vektor < niz > voće )
{
//Inicijaliziraj brojač
int brojač = 1 ;
//Iteracija i ispis elemenata vektora pomoću petlje
za ( auto on = voće. početi ( ) ; on ! = voće. kraj ( ) ; on ++ )
{
//Provjerite jesu li elementi zadnji element ili ne
ako ( brojač ! = voće. veličina ( ) )
cout << * on << ', ' ;
drugo
cout << * on ;
//Povećaj brojač za 1
brojač ++ ;
}
cout << endl ;
}
int glavni ( poništiti ) {
//Deklarirajte vektor podataka niza
vektor < niz > voće = { 'Naranča' , 'Banana' , 'Mango' , 'Jack Fruit' , Liči } ;
//Ispis postojećih vrijednosti vektora
cout << 'Vrijednosti vektora prije uklanjanja: ' << endl ;
prikaz_vektora ( voće ) ;
//Uklanjanje prvog elementa iz vektora
voće. izbrisati ( voće. početi ( ) ) ;
//Ispiši postojeće vrijednosti vektora nakon uklanjanja
cout << ' \n Vrijednosti vektora nakon uklanjanja: ' << endl ;
prikaz_vektora ( voće ) ;
povratak 0 ;
}
Izlaz:
Nakon izvršavanja gornjeg koda pojavit će se sljedeći izlaz.
Primjer-2: Uklonite više elemenata
Stvorite C++ datoteku sa sljedećim kodom za uklanjanje višestrukih elemenata iz vektora pomoću funkcije erase(). U kodu je korišten vektor cjelobrojnih vrijednosti. Ovdje su korištena dva iteratora za postavljanje raspona elemenata uklonjenih iz vektora. Funkcija erase() korištena je s dva parametra za uklanjanje više elemenata iz vektora.
//Uključi potrebne biblioteke#uključi
#include
korištenjem imenski prostor std ;
//Prikaži vektor
poništiti prikaz_vektora ( vektor < int > brojevima )
{
//Ispis vrijednosti vektora pomoću petlje
za ( auto on = brojevima. početi ( ) ; on ! = brojevima. kraj ( ) ; on ++ )
cout << * on << ' ' ;
//Dodaj novi redak
cout << ' \n ' ;
}
int glavni ( ) {
//Deklarirajte vektor cjelobrojnih podataka
vektor < int > intArray { 678 , 435 , 960 , 231 , 800 , 387 , 634 , 267 , 409 , 294 } ;
//Ispis postojećih vrijednosti vektora
cout << 'Vrijednosti vektora prije uklanjanja: ' << endl ;
prikaz_vektora ( intArray ) ;
//Deklarirajte dva iteratora za uklanjanje raspona elemenata iz vektora
vektor < int > :: iterator startEle, endEle ;
//Postavite iterator na prvu poziciju
pokrenuti ih = intArray. početi ( ) ;
//Povećaj početni iterator za 2
unaprijed ( pokreni ih, 2 ) ;
//Postavi iterator na posljednju poziciju
endEle = intArray. kraj ( ) ;
//Smanjite završni iterator za 3
unaprijed ( endEle, - 3 ) ;
//Ukloni raspon elemenata
intArray. izbrisati ( startEle, endEle ) ;
//Ispiši postojeće vrijednosti vektora nakon uklanjanja
cout << ' \n Vrijednosti vektora nakon uklanjanja: ' << endl ;
prikaz_vektora ( intArray ) ;
povratak 0 ;
}
Izlaz:
Nakon izvršavanja gornjeg koda pojavit će se sljedeći izlaz. Sukladno rasponu iteratora, elementi od 3. do 7. pozicije vektora su uklonjeni.
Primjer-3: Uklonite određene elemente
Stvorite C++ datoteku sa sljedećim kodom za uklanjanje određenih elemenata vektora pomoću funkcije erase(). U kodu je deklariran vektor od 7 cjelobrojnih elemenata. Dalje, petlja 'za' koristi se za ponavljanje vektorskih elemenata i uklanjanje onih elemenata iz vektora koji nisu djeljivi s 5.
//Uključi potrebne biblioteke#include
#uključi
korištenjem imenski prostor std ;
int glavni ( )
{
//Deklarirajte vektor cjelobrojnih podataka
vektor < int > brojevima = { 78 , Četiri pet , 67 , 25 , 98 , 75 , 52 } ;
cout << 'Vrijednosti vektora prije uklanjanja: \n ' ;
za ( int konst i ja : brojevima ) {
cout << ja << ' ' ;
}
cout << endl ;
//Uklonite brojeve iz vektora koji nisu djeljivi s 5
za ( auto on = brojevima. početi ( ) ; on ! = brojevima. kraj ( ) ; on ++ )
{
//Provjerite je li broj djeljiv s 5 ili ne
ako ( * on % 5 ! = 0 )
{
//Uklanjanje elementa na temelju iteratora
brojevima. izbrisati ( on -- ) ;
}
}
cout << 'Vrijednosti vektora nakon uklanjanja: \n ' ;
za ( int konst i ja : brojevima ) {
cout << ja << ' ' ;
}
cout << endl ;
povratak 0 ;
}
Izlaz:
Nakon izvršavanja gornjeg koda pojavit će se sljedeći izlaz. Izlaz pokazuje da vektor sadrži samo elemente djeljive s 5, a ostali elementi su uklonjeni.
Zaključak:
U ovom vodiču prikazane su različite upotrebe funkcije erase() za uklanjanje vektorskih elemenata. C++ ima mnoge druge funkcije za uklanjanje elementa iz vektora, a te funkcije mogu ukloniti jedan po jedan element. Ali pojedinačni i višestruki elementi s bilo koje pozicije vektora mogu se ukloniti pomoću funkcije vektor brisanje().