Funkcija Vector Erase () v C ++

Vector Erase Function C



Niz se uporablja za shranjevanje več podatkov, v času izvajanja pa se ne more spremeniti števila elementov matrike. Ta problem je mogoče rešiti z uporabo vektorja, ki deluje kot dinamična matrika. V vektorskem razredu obstajajo različne funkcije za dodajanje in odstranjevanje elementa iz vektorja. Funkcija erase () se uporablja za odstranitev enega ali več elementov iz vektorja v času izvajanja, ki zmanjša velikost vektorja. V tej vadnici so bile opisane uporabe te funkcije.

Sintaksa:

Spodaj sta podani dve vrsti sintakse te funkcije.







iterator brisanje(položaj iteratorja);

Zgornja funkcija erase () se uporablja za odstranitev enega elementa iz vektorja in vrne iterator ter kaže na element, ki mu sledi zadnji izbrisani element.



iterator brisanje(iterator začetna_pozicija, iterator končna_postavitev);

Zgornja funkcija erase () se uporablja za odstranjevanje več elementov iz vektorja na podlagi položaja, omenjenega v prvem in drugem argumentu te funkcije.



Predpogoj:

Preden preverite primere te vadnice, morate preveriti, ali je prevajalnik g ++ nameščen ali ne v sistemu. Če uporabljate Visual Studio Code, namestite potrebne razširitve za sestavljanje izvorne kode C ++ za ustvarjanje izvedljive kode. Tu je bila aplikacija Visual Studio Code uporabljena za sestavljanje in izvajanje kode C ++. Spodaj so prikazane različne uporabe funkcije erase () za vstavljanje elementov v vektor.





Primer 1: Odstranite prvi element elementa

Ustvarite datoteko C ++ z naslednjo kodo, da odstranite element z začetka vektorja. V kodi je bil uporabljen vektor nizov. Vrednosti vektorja so bile natisnjene pred in po brisanju prvega elementa iz vektorja s funkcijo erase () z enim parametrom.

// Vključi potrebne knjižnice

#vključi

#vključi

z uporabo imenski prostorure;

// Prikaz vrednosti vektorja

ničnodisplay_vector(vektor<vrvica>sadje)

{

// Inicializiraj števec

intštevec= 1;

// Iteracijo in tiskanje elementov vektorja z uporabo zanke

za (samodejnoon=sadje.začeti();on!=sadje.konec();on++)

{

// Preverite, ali so elementi zadnji ali ne

če(števec!=sadje.velikost())

stroški << *on<< ',';

drugače

stroški << *on;

// Povečaj števec za 1

števec++;

}

stroški <<endl;

}

intglavni(nično) {

// Razglasimo vektor nizovnih podatkov

vektor<vrvica>sadje= { 'Oranžna','Banana','Mango','Jack Fruit','Lichi' };

// Natisnite obstoječe vrednosti vektorja

stroški << 'Vrednosti vektorja pred odstranitvijo:' <<endl;

display_vector(sadje);

// Odstranimo prvi element iz vektorja

sadje.izbrisati(sadje.začeti());

// Natisnite obstoječe vrednosti vektorja po odstranitvi

stroški << ' nVrednosti vektorja po odstranitvi: ' <<endl;

display_vector(sadje);

vrnitev 0;

}

Izhod:

Po izvedbi zgornje kode se prikaže naslednji izhod.



Primer 2: Odstranite več elementov

Ustvarite datoteko C ++ z naslednjo kodo, da odstranite več elementov iz vektorja s funkcijo erase (). V kodi je bil uporabljen vektor celobrojnih vrednosti. Za nastavitev obsega elementov, odstranjenih iz vektorja, sta bila uporabljena dva iteratorja. Funkcija erase () je bila uporabljena z dvema parametroma za odstranjevanje več elementov iz vektorja.

// Vključi potrebne knjižnice

#vključi

#vključi

z uporabo imenski prostorure;

// Prikaz vektorja

ničnodisplay_vector(vektor<int>nums)

{

// Natisnite vrednosti vektorja z uporabo zanke

za(samodejnoon=nums.začeti();on!=nums.konec() ;on++)

stroški << *on<< '';

// Dodaj novo vrstico

stroški << ' n';

}

intglavni() {

// Razglasimo vektor celobrojnih podatkov

vektor<int>intArray{ 678,435,960,231,800,387,634,267,409,294};

// Natisnite obstoječe vrednosti vektorja

stroški << 'Vrednosti vektorja pred odstranitvijo:' <<endl;

display_vector(intArray);

// Razglasimo dva iteratorja, da odstranimo obseg elementov iz vektorja

vektor<int> :: iteratorstartEle, endEle;

// Nastavi iterator na prvo mesto

startEle=intArray.začeti();

// Začetni iterator povečamo za 2

vnaprej(startEle,2);

// Ponovite iterator na zadnji položaj

endEle=intArray.konec();

// Zmanjšamo zaključni iterator za 3

vnaprej(endEle,-3);

// Odstranite obseg elementov

intArray.izbrisati(startEle, endEle);

// Natisnite obstoječe vrednosti vektorja po odstranitvi

stroški << ' nVrednosti vektorja po odstranitvi: ' <<endl;

display_vector(intArray);

vrnitev 0;

}

Izhod:

Po izvedbi zgornje kode se prikaže naslednji izhod. Glede na obseg iteratorjev so bili elementi od tretjega do sedmega položaja vektorja odstranjeni.

Primer 3: Odstranite posebne elemente

Ustvarite datoteko C ++ z naslednjo kodo, da odstranite posebne elemente vektorja s funkcijo erase (). V kodi je bil razglašen vektor 7 celobrojnih elementov. Nato je zanka 'for' uporabila za ponavljanje vektorskih elementov in odstranjevanje tistih elementov iz vektorja, ki niso deljivi s 5.

// Vključi potrebne knjižnice

#vključi

#vključi

z uporabo imenski prostorure;

intglavni()

{

// Razglasimo vektor celobrojnih podatkov

vektor<int>številke= { 78,Štiri, pet,67,25,98,75,52 };

stroški << 'Vrednosti vektorja pred odstranitvijo: n';

za (int const &jaz:številke) {

stroški <<jaz<< '';

}

stroški <<endl;

// Iz vektorja odstranimo številke, ki niso deljive s 5

za (samodejnoon=številke.začeti();on!=številke.konec();on++)

{

// Preverite, ali je število deljivo s 5 ali ne

če (*on% 5 != 0)

{

// Odstranimo element na podlagi iteratorja

številke.izbrisati(on-);

}

}

stroški << 'Vrednosti vektorja po odstranitvi: n';

za (int const &jaz:številke) {

stroški <<jaz<< '';


}


stroški <<endl;


vrnitev 0;

}

Izhod:

Po izvedbi zgornje kode se prikaže naslednji izhod. Izhod prikazuje, da vektor vsebuje deljive elemente samo s 5, drugi elementi pa so bili odstranjeni.

Zaključek:

Za odstranitev vektorskih elementov so bile v tej vadnici prikazane različne uporabe funkcije erase (). C ++ ima številne druge funkcije za odstranitev elementa iz vektorja in te funkcije lahko odstranijo posamezen element hkrati. Toda posamezne in več elementov iz katerega koli položaja vektorja je mogoče odstraniti z uporabo funkcije vektorskega brisanja ().