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.