Vector Erase()-funksjon i C++

Vector Erase Funksjon I C



Matrisen brukes til å lagre flere data, og antall elementer i matrisen kan ikke endres under kjøretiden. Dette problemet kan løses ved å bruke en vektor som fungerer som en dynamisk matrise. Ulike funksjoner finnes i vektorklassen for å legge til og fjerne et element fra vektoren. Erase()-funksjonen brukes til å fjerne ett eller flere elementer fra vektoren på kjøretiden som reduserer størrelsen på vektoren. Bruken av denne funksjonen er forklart i denne opplæringen.

Syntaks:

To typer syntaks for denne funksjonen har gitt nedenfor.







iterator sletting ( iteratorposisjon ) ;

Funksjonen erase() ovenfor brukes til å fjerne et enkelt element fra vektoren, og den returnerer en iterator, og den peker på elementet som blir fulgt av det sist slettede elementet.



iterator sletting ( iterator startposisjon, iterator sluttposisjon ) ;

Funksjonen erase() ovenfor brukes til å fjerne flere elementer fra vektoren basert på posisjonen nevnt i denne funksjonens første og andre argument.



Forutsetning:

Før du sjekker eksemplene i denne opplæringen, må du sjekke at g++-kompilatoren er installert eller ikke i systemet. Hvis du bruker Visual Studio Code, installer de nødvendige utvidelsene for å kompilere C++-kildekoden for å lage den kjørbare koden. Her har Visual Studio Code-applikasjonen blitt brukt til å kompilere og kjøre C++-koden. Ulike bruk av slette()-funksjonen for å sette inn element(er) i en vektor er vist nedenfor.





Eksempel-1: Fjern det første elementelementet

Lag en C++-fil med følgende kode for å fjerne et element fra begynnelsen av vektoren. En vektor av strengverdier har blitt brukt i koden. Verdiene til vektoren har blitt skrevet ut før og etter sletting av det første elementet fra vektoren ved å bruke erase()-funksjonen med én parameter.

//Inkluder nødvendige biblioteker

#include

#inkluder

ved hjelp av navneområde std ;

//Vis verdiene til vektoren

tomrom display_vector ( vektor < streng > frukt )

{

//Initialiser telleren

int disk = 1 ;

//Iterer og skriv ut elementene i vektoren ved hjelp av loop

til ( auto han = frukt. begynne ( ) ; han ! = frukt. slutt ( ) ; han ++ )

{

//Sjekk at elementene er det siste elementet eller ikke

hvis ( disk ! = frukt. størrelse ( ) )

cout << * han << ', ' ;

ellers

cout << * han ;

//Øk telleren med 1

disk ++ ;

}

cout << endl ;

}

int hoved- ( tomrom ) {

//Erklære en vektor av strengdata

vektor < streng > frukt = { 'Oransje' , 'Banan' , 'Mango' , 'Jack Fruit' , Litchi } ;

//Skriv ut de eksisterende verdiene til vektoren

cout << 'Verdiene til vektoren før fjerning: ' << endl ;

display_vector ( frukt ) ;

//Fjern det første elementet fra vektoren

frukt. viske ut ( frukt. begynne ( ) ) ;

//Skriv ut de eksisterende verdiene til vektoren etter fjerning

cout << ' \n Verdiene til vektoren etter fjerning: ' << endl ;

display_vector ( frukt ) ;

komme tilbake 0 ;

}

Produksjon:

Følgende utgang vil vises etter å ha utført koden ovenfor.



Eksempel-2: Fjern flere elementer

Lag en C++-fil med følgende kode for å fjerne de flere elementene fra vektoren ved å bruke erase()-funksjonen. En vektor med heltallsverdier er brukt i koden. To iteratorer har blitt brukt her for å angi rekkevidden av elementer fjernet fra vektoren. Erase()-funksjonen har blitt brukt med to parametere for å fjerne flere elementer fra vektoren.

//Inkluder nødvendige biblioteker

#inkluder

#include

ved hjelp av navneområde std ;

//Vis vektoren

tomrom display_vector ( vektor < int > tall )

{

//Skriv ut verdiene til vektoren ved hjelp av loop

til ( auto han = tall. begynne ( ) ; han ! = tall. slutt ( ) ; han ++ )

cout << * han << ' ' ;

//Legg til ny linje

cout << ' \n ' ;

}

int hoved- ( ) {

//Deklarer en vektor av heltallsdata

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

//Skriv ut de eksisterende verdiene til vektoren

cout << 'Verdiene til vektoren før fjerning: ' << endl ;

display_vector ( intArray ) ;

//Erklær to iteratorer for å fjerne rekkevidden av elementer fra vektoren

vektor < int > :: iterator startEle, endEle ;

//Sett iteratoren til den første posisjonen

starte dem = intArray. begynne ( ) ;

//Øk startiteratoren med 2

avansere ( starte dem, 2 ) ;

//Sett iteratoren til siste posisjon

endEle = intArray. slutt ( ) ;

//Reduser sluttiteratoren med 3

avansere ( endEle, - 3 ) ;

//Fjern rekkevidden av elementer

intArray. viske ut ( startEle, endEle ) ;

//Skriv ut de eksisterende verdiene til vektoren etter fjerning

cout << ' \n Verdiene til vektoren etter fjerning: ' << endl ;

display_vector ( intArray ) ;

komme tilbake 0 ;

}

Produksjon:

Følgende utgang vil vises etter å ha utført koden ovenfor. I henhold til rekkevidden til iteratorene er elementene fra 3. posisjon til 7. posisjon av vektoren fjernet.

Eksempel-3: Fjern de spesifikke elementene

Lag en C++-fil med følgende kode for å fjerne de spesifikke elementene i vektoren ved å bruke erase()-funksjonen. En vektor med 7 heltallselementer er deklarert i koden. Deretter har 'for'-løkken brukt til å iterere vektorelementene og fjerne de elementene fra vektoren som ikke er delbare med 5.

//Inkluder nødvendige biblioteker

#include

#inkluder

ved hjelp av navneområde std ;

int hoved- ( )

{

//Deklarer en vektor av heltallsdata

vektor < int > tall = { 78 , Fire fem , 67 , 25 , 98 , 75 , 52 } ;

cout << 'Verdiene til vektoren før fjerning: \n ' ;

til ( int konst & Jeg : tall ) {

cout << Jeg << ' ' ;

}

cout << endl ;

//Fjern tallene fra vektoren som ikke er delbare med 5

til ( auto han = tall. begynne ( ) ; han ! = tall. slutt ( ) ; han ++ )

{

//Sjekk at tallet er delelig med 5 eller ikke

hvis ( * han % 5 ! = 0 )

{

//Fjern elementet basert på iteratoren

tall. viske ut ( han -- ) ;

}

}

cout << 'Verdiene til vektoren etter fjerning: \n ' ;

til ( int konst & Jeg : tall ) {

cout << Jeg << ' ' ;


}


cout << endl ;


komme tilbake 0 ;

}

Produksjon:

Følgende utgang vil vises etter å ha utført koden ovenfor. Utgangen viser at vektoren kun inneholder de delbare elementene med 5, og andre elementer er fjernet.

Konklusjon:

Ulike bruk av erase()-funksjonen er vist i denne opplæringen for å fjerne vektorelementer. C++ har mange andre funksjoner for å fjerne elementet fra vektoren, og disse funksjonene kan fjerne enkeltelementet om gangen. Men både enkelt- og multiple elementer fra en hvilken som helst posisjon i vektoren kan fjernes ved å bruke vektor erase()-funksjonen.