Niz se koristi za spremanje više podataka, a broj elemenata niza ne može se promijeniti tijekom izvođenja. Ovaj se problem može riješiti korištenjem vektora koji radi poput dinamičkog niza. U vektorskoj klasi postoje različite funkcije za dodavanje i uklanjanje elementa iz vektora. Funkcija erase () koristi se za uklanjanje jednog ili više elemenata iz vektora u vrijeme izvođenja što smanjuje veličinu vektora. Upotreba ove funkcije objašnjena je u ovom vodiču.
Sintaksa:
Dvije vrste sintakse ove funkcije navedene su u nastavku.
iterator brisanje(položaj iteratora);
Gornja funkcija erase () koristi se za uklanjanje jednog elementa iz vektora i vraća iterator te pokazuje na element iza kojeg slijedi zadnji izbrisani element.
iterator brisanje(iterator početna pozicija, iterator završna_položaj);
Gornja funkcija erase () koristi se za uklanjanje više elemenata iz vektora na temelju položaja navedenog u prvom i drugom argumentu ove funkcije.
Preduvjet:
Prije nego provjerite primjere ovog vodiča, morate provjeriti je li g ++ kompajler instaliran ili nije u sustavu. Ako koristite Visual Studio Code, instalirajte potrebna proširenja za sastavljanje izvornog koda C ++ za stvaranje izvršnog koda. Ovdje se aplikacija Visual Studio Code koristila za sastavljanje i izvršavanje koda C ++. Različite uporabe funkcije erase () za umetanje elemenata (a) u vektor prikazane su u nastavku.
Primjer-1: Uklonite prvi element element
Napravite C ++ datoteku sa sljedećim kodom kako biste uklonili element s početka vektora. U kodu je korišten vektor niznih vrijednosti. Vrijednosti vektora ispisane su prije i nakon brisanja prvog elementa iz vektora pomoću funkcije erase () s jednim parametrom.
// Uključuje potrebne knjižnice#uključi
#uključi
koristeći imenski prostorsati;
// Prikaz vrijednosti vektora
poništitidisplay_vector(vektor<niz>voće)
{
// Pokretanje brojača
intbrojač= 1;
// Iteracija i ispis elemenata vektora pomoću petlje
za (autoon=voće.početi();on!=voće.kraj();on++)
{
// Provjerite je li element posljednji element ili nije
ako(brojač!=voće.veličina())
trošak << *on<< ',';
drugo
trošak << *on;
// Povećajte brojač za 1
brojač++;
}
trošak <<endl;
}
intglavni(poništiti) {
// Proglašavamo vektor podataka niza
vektor<niz>voće= { 'Naranča','Banana','Mango','Jack Fruit','Lichi' };
// Ispis postojećih vrijednosti vektora
trošak << 'Vrijednosti vektora prije uklanjanja:' <<endl;
display_vector(voće);
// Uklonite prvi element iz vektora
voće.izbrisati(voće.početi());
// Ispis postojećih vrijednosti vektora nakon uklanjanja
trošak << ' nVrijednosti vektora nakon uklanjanja: ' <<endl;
display_vector(voće);
povratak 0;
}
Izlaz:
Sljedeći izlaz će se pojaviti nakon izvršavanja gornjeg koda.
Primjer 2: Uklonite više elemenata
Napravite C ++ datoteku sa sljedećim kodom kako biste uklonili više elemenata iz vektora pomoću funkcije erase (). U kodu je korišten vektor cijelih 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čuje potrebne knjižnice#uključi
#uključi
koristeći imenski prostorsati;
// Prikaz vektora
poništitidisplay_vector(vektor<int>brojevi)
{
// Ispisujemo vrijednosti vektora pomoću petlje
za(autoon=brojevi.početi();on!=brojevi.kraj() ;on++)
trošak << *on<< '';
// Dodaj novi redak
trošak << ' n';
}
intglavni() {
// Proglašavamo vektor cjelobrojnih podataka
vektor<int>intArray{ 678,435,960,231,800,387,634,267,409,294};
// Ispis postojećih vrijednosti vektora
trošak << 'Vrijednosti vektora prije uklanjanja:' <<endl;
display_vector(intArray);
// Deklariramo dva iteratora za uklanjanje raspona elemenata iz vektora
vektor<int> :: iteratorstartEle, endEle;
// Postavite iterator na prvo mjesto
startEle=intArray.početi();
// Povećajte početni iterator za 2
unaprijed(startEle,2);
// Postavite iterator na posljednji položaj
endEle=intArray.kraj();
// Smanjite završni iterator za 3
unaprijed(endEle,-3);
// Uklanjanje raspona elemenata
intArray.izbrisati(startEle, endEle);
// Ispis postojećih vrijednosti vektora nakon uklanjanja
trošak << ' nVrijednosti vektora nakon uklanjanja: ' <<endl;
display_vector(intArray);
povratak 0;
}
Izlaz:
Sljedeći izlaz će se pojaviti nakon izvršavanja gornjeg koda. Prema rasponu iteratora, elementi s 3. položaja na 7. položaj vektora su uklonjeni.
Primjer-3: Uklonite određene elemente
Napravite C ++ datoteku sa sljedećim kodom kako biste uklonili određene elemente vektora pomoću funkcije erase (). U kodu je deklariran vektor od 7 cjelobrojnih elemenata. Zatim se petlja ‘for’ koristila za ponavljanje vektorskih elemenata i uklanjanje onih elemenata iz vektora koji nisu djeljivi s 5.
// Uključuje potrebne knjižnice#uključi
#uključi
koristeći imenski prostorsati;
intglavni()
{
// Proglašavamo vektor cjelobrojnih podataka
vektor<int>brojevima= { 78,Četiri pet,67,25,98,75,52 };
trošak << 'Vrijednosti vektora prije uklanjanja: n';
za (int konst &i:brojevima) {
trošak <<i<< '';
}
trošak <<endl;
// Uklonite brojeve iz vektora koji nisu djeljivi sa 5
za (autoon=brojevima.početi();on!=brojevima.kraj();on++)
{
// Provjerite je li broj djeljiv sa 5 ili ne
ako (*on% 5 != 0)
{
// Uklonite element na temelju iteratora
brojevima.izbrisati(on-);
}
}
trošak << 'Vrijednosti vektora nakon uklanjanja: n';
za (int konst &i:brojevima) {
trošak <<i<< '';
}
trošak <<endl;
povratak 0;
}
Izlaz:
Sljedeći izlaz će se pojaviti nakon izvršavanja gornjeg koda. Izlaz pokazuje da vektor sadrži djeljive elemente samo s 5, a drugi elementi su uklonjeni.
Zaključak:
Različite uporabe funkcije erase () prikazane su u ovom vodiču za uklanjanje vektorskih elemenata. C ++ ima mnoge druge funkcije za uklanjanje elementa iz vektora, a te funkcije mogu ukloniti pojedinačni element odjednom. No, i pojedinačni i višestruki elementi iz bilo koje pozicije vektora mogu se ukloniti pomoću funkcije vektorske erase ().