Funkcija Vector Erase() v C++

Funkcija Vector Erase V C



Matrika se uporablja za shranjevanje več podatkov in števila elementov matrike med izvajanjem ni mogoče spremeniti. Ta problem je mogoče rešiti z uporabo vektorja, ki deluje kot dinamično polje. 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 med izvajanjem, kar zmanjša velikost vektorja. Uporaba te funkcije je bila razložena v tej vadnici.

Sintaksa:

Spodaj sta navedeni dve vrsti sintakse te funkcije.







brisanje iteratorja ( položaj iteratorja ) ;

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



brisanje iteratorja ( začetni_položaj iteratorja, končni_položaj iteratorja ) ;

Zgornja funkcija erase() se uporablja za odstranitev več elementov iz vektorja glede na položaj, omenjen v prvem in drugem argumentu te funkcije.



Predpogoj:

Preden preverite primere te vadnice, morate preveriti, ali je prevajalnik g++ nameščen v sistemu ali ne. Če uporabljate Visual Studio Code, namestite potrebne razširitve za prevajanje izvorne kode C++ za ustvarjanje izvedljive kode. Tu je bila za prevajanje in izvajanje kode C++ uporabljena aplikacija Visual Studio Code. 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 vrednosti niza. Vrednosti vektorja so bile natisnjene pred in po brisanju prvega elementa iz vektorja s funkcijo erase() z enim parametrom.

//Vključi potrebne knjižnice

#include

#include

uporabo imenski prostor std ;

//Prikaži vrednosti vektorja

praznina prikazni_vektor ( vektor < vrvica > sadje )

{

//Inicializiraj števec

int števec = 1 ;

//Iteracija in tiskanje elementov vektorja z uporabo zanke

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

{

//Preverite, ali so elementi zadnji element ali ne

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

cout << * on << ', ' ;

drugače

cout << * on ;

//Povečaj števec za 1

števec ++ ;

}

cout << konec ;

}

int glavni ( praznina ) {

//Deklarirajte vektor nizovnih podatkov

vektor < vrvica > sadje = { 'pomaranča' , 'banana' , 'Mango' , 'Jack Fruit' , Liči } ;

//Izpis obstoječih vrednosti vektorja

cout << 'Vrednosti vektorja pred odstranitvijo: ' << konec ;

prikazni_vektor ( sadje ) ;

//Odstrani prvi element iz vektorja

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

//Natisni obstoječe vrednosti vektorja po odstranitvi

cout << ' \n Vrednosti vektorja po odstranitvi: ' << konec ;

prikazni_vektor ( sadje ) ;

vrnitev 0 ;

}

Izhod:

Po izvedbi zgornje kode se prikaže naslednji rezultat.



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 celoštevilskih vrednosti. Tu sta bila uporabljena dva iteratorja za nastavitev obsega elementov, odstranjenih iz vektorja. Funkcija erase() je bila uporabljena z dvema parametroma za odstranitev več elementov iz vektorja.

//Vključi potrebne knjižnice

#include

#include

uporabo imenski prostor std ;

//Prikaži vektor

praznina prikazni_vektor ( vektor < int > številke )

{

//Izpis vrednosti vektorja z uporabo zanke

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

cout << * on << ' ' ;

//Dodaj novo vrstico

cout << ' \n ' ;

}

int glavni ( ) {

//Deklarirajte vektor celih podatkov

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

//Izpis obstoječih vrednosti vektorja

cout << 'Vrednosti vektorja pred odstranitvijo: ' << konec ;

prikazni_vektor ( intArray ) ;

//Deklarirajte dva iteratorja, da odstranite obseg elementov iz vektorja

vektor < int > :: iterator startEle, endEle ;

//Nastavi iterator na prvo mesto

začnite jih = intArray. začeti ( ) ;

//Povečaj začetni iterator za 2

vnaprej ( začni jih, 2 ) ;

//Nastavi iterator na zadnji položaj

endEle = intArray. konec ( ) ;

//Zmanjšaj končni iterator za 3

vnaprej ( endEle, - 3 ) ;

//Odstrani obseg elementov

intArray. izbrisati ( startEle, endEle ) ;

//Natisni obstoječe vrednosti vektorja po odstranitvi

cout << ' \n Vrednosti vektorja po odstranitvi: ' << konec ;

prikazni_vektor ( intArray ) ;

vrnitev 0 ;

}

Izhod:

Po izvedbi zgornje kode se prikaže naslednji rezultat. Glede na obseg iteratorjev so bili odstranjeni elementi od 3. do 7. položaja vektorja.

Primer-3: Odstranite določene elemente

Ustvarite datoteko C++ z naslednjo kodo, da odstranite določene elemente vektorja s funkcijo erase(). V kodi je deklariran vektor 7 celih elementov. Nato se je zanka 'za' uporabila za ponavljanje vektorskih elementov in odstranjevanje tistih elementov iz vektorja, ki niso deljivi s 5.

//Vključi potrebne knjižnice

#include

#include

uporabo imenski prostor std ;

int glavni ( )

{

//Deklarirajte vektor celih podatkov

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

cout << 'Vrednosti vektorja pred odstranitvijo: \n ' ;

za ( int konst & jaz : številke ) {

cout << jaz << ' ' ;

}

cout << konec ;

//Odstrani števila iz vektorja, ki niso deljiva s 5

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

{

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

če ( * on % 5 ! = 0 )

{

//Odstrani element na podlagi iteratorja

številke. izbrisati ( on -- ) ;

}

}

cout << 'Vrednosti vektorja po odstranitvi: \n ' ;

za ( int konst & jaz : številke ) {

cout << jaz << ' ' ;


}


cout << konec ;


vrnitev 0 ;

}

Izhod:

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

Zaključek:

V tej vadnici so bile prikazane različne uporabe funkcije erase() za odstranjevanje vektorskih elementov. C++ ima veliko drugih funkcij za odstranitev elementa iz vektorja in te funkcije lahko odstranijo en element naenkrat. Toda posamezne in več elementov s katerega koli položaja vektorja je mogoče odstraniti s funkcijo vektorskega brisanja().