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