Funkcija Vector Erase () u C ++

Vector Erase Function C



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 ().