Arrayet bruges til at gemme flere data, og antallet af elementer i arrayet kan ikke ændres under kørselstiden. Dette problem kan løses ved at bruge en vektor, der fungerer som et dynamisk array. Der findes forskellige funktioner i vektorklassen for at tilføje og fjerne et element fra vektoren. Erase()-funktionen bruges til at fjerne et eller flere elementer fra vektoren på den køretid, der reducerer størrelsen af vektoren. Brugen af denne funktion er blevet forklaret i denne vejledning.
Syntaks:
To typer syntaks for denne funktion er angivet nedenfor.
iterator sletning ( iterator position ) ;
Ovenstående erase()-funktion bruges til at fjerne et enkelt element fra vektoren, og den returnerer en iterator, og den peger på elementet, der efterfølges af det sidst slettede element.
iterator sletning ( iterator startposition, iterator slutposition ) ;
Ovenstående erase()-funktion bruges til at fjerne flere elementer fra vektoren baseret på positionen nævnt i denne funktions første og andet argument.
Forudsætning:
Før du tjekker eksemplerne på denne tutorial, skal du kontrollere, at g++-kompileren er installeret eller ej i systemet. Hvis du bruger Visual Studio Code, skal du installere de nødvendige udvidelser for at kompilere C++-kildekoden for at skabe den eksekverbare kode. Her er Visual Studio Code-applikationen blevet brugt til at kompilere og udføre C++-koden. Forskellige anvendelser af funktionen erase() til at indsætte element(er) i en vektor er vist nedenfor.
Eksempel-1: Fjern det første elementelement
Opret en C++ fil med følgende kode for at fjerne et element fra begyndelsen af vektoren. En vektor af strengværdier er blevet brugt i koden. Vektorens værdier er blevet udskrevet før og efter sletning af det første element fra vektoren ved hjælp af erase()-funktionen med én parameter.
//Medtag nødvendige biblioteker#include
#inkluder
ved brug af navneområde std ;
//Vis vektorens værdier
ugyldig display_vector ( vektor < snor > frugter )
{
//Initialiser tælleren
int tæller = 1 ;
//Iterér og udskriv vektorens elementer ved hjælp af loop
til ( auto han = frugter. begynde ( ) ; han ! = frugter. ende ( ) ; han ++ )
{
//Tjek, at elementerne er det sidste element eller ej
hvis ( tæller ! = frugter. størrelse ( ) )
cout << * han << ', ' ;
andet
cout << * han ;
//Forøg tælleren med 1
tæller ++ ;
}
cout << endl ;
}
int vigtigste ( ugyldig ) {
//Erklære en vektor af strengdata
vektor < snor > frugter = { 'Orange' , 'Banan' , 'Mango' , 'Jack Fruit' , Litchi } ;
//Udskriv de eksisterende værdier af vektoren
cout << 'Vektorens værdier før fjernelse: ' << endl ;
display_vector ( frugter ) ;
//Fjern det første element fra vektoren
frugter. slette ( frugter. begynde ( ) ) ;
//Udskriv de eksisterende værdier af vektoren efter fjernelse
cout << ' \n Værdierne af vektoren efter fjernelse: ' << endl ;
display_vector ( frugter ) ;
Vend tilbage 0 ;
}
Produktion:
Følgende output vises efter udførelse af ovenstående kode.
Eksempel-2: Fjern flere elementer
Opret en C++-fil med følgende kode for at fjerne de flere elementer fra vektoren ved hjælp af erase()-funktionen. En vektor med heltalsværdier er blevet brugt i koden. To iteratorer er blevet brugt her til at indstille rækken af elementer fjernet fra vektoren. Erase()-funktionen er blevet brugt med to parametre til at fjerne flere elementer fra vektoren.
//Medtag nødvendige biblioteker#inkluder
#include
ved brug af navneområde std ;
//Vis vektoren
ugyldig display_vector ( vektor < int > tal )
{
//Udskriv værdierne af vektoren ved hjælp af loop
til ( auto han = tal. begynde ( ) ; han ! = tal. ende ( ) ; han ++ )
cout << * han << ' ' ;
//Tilføj ny linje
cout << ' \n ' ;
}
int vigtigste ( ) {
//Erklære en vektor af heltalsdata
vektor < int > intArray { 678 , 435 , 960 , 231 , 800 , 387 , 634 , 267 , 409 , 294 } ;
//Udskriv de eksisterende værdier af vektoren
cout << 'Vektorens værdier før fjernelse: ' << endl ;
display_vector ( intArray ) ;
//Erklær to iteratorer for at fjerne rækken af elementer fra vektoren
vektor < int > :: iterator startEle, endEle ;
//Sæt iteratoren til den første position
starte dem = intArray. begynde ( ) ;
//Forøg startiteratoren med 2
rykke ( starte dem, 2 ) ;
//Sæt iteratoren til den sidste position
endEle = intArray. ende ( ) ;
//Reducer den afsluttende iterator med 3
rykke ( endEle, - 3 ) ;
//Fjern rækken af elementer
intArray. slette ( startEle, endEle ) ;
//Udskriv de eksisterende værdier af vektoren efter fjernelse
cout << ' \n Værdierne af vektoren efter fjernelse: ' << endl ;
display_vector ( intArray ) ;
Vend tilbage 0 ;
}
Produktion:
Følgende output vises efter udførelse af ovenstående kode. I henhold til rækkevidden af iteratorerne er elementerne fra den 3. position til den 7. position af vektoren blevet fjernet.
Eksempel-3: Fjern de specifikke elementer
Opret en C++-fil med følgende kode for at fjerne de specifikke elementer i vektoren ved hjælp af erase()-funktionen. En vektor med 7 heltalselementer er blevet erklæret i koden. Dernæst har 'for'-løkken brugt til at iterere vektorelementerne og fjerne de elementer fra vektoren, der ikke er delelige med 5.
//Medtag nødvendige biblioteker#include
#inkluder
ved brug af navneområde std ;
int vigtigste ( )
{
//Erklære en vektor af heltalsdata
vektor < int > tal = { 78 , Fire, fem , 67 , 25 , 98 , 75 , 52 } ;
cout << 'Vektorens værdier før fjernelse: \n ' ;
til ( int konst & jeg : tal ) {
cout << jeg << ' ' ;
}
cout << endl ;
//Fjern tallene fra vektoren, som ikke er delelige med 5
til ( auto han = tal. begynde ( ) ; han ! = tal. ende ( ) ; han ++ )
{
//Tjek, at tallet er deleligt med 5 eller ej
hvis ( * han % 5 ! = 0 )
{
//Fjern elementet baseret på iteratoren
tal. slette ( han -- ) ;
}
}
cout << 'Vektorens værdier efter fjernelse: \n ' ;
til ( int konst & jeg : tal ) {
cout << jeg << ' ' ;
}
cout << endl ;
Vend tilbage 0 ;
}
Produktion:
Følgende output vises efter udførelse af ovenstående kode. Outputtet viser, at vektoren kun indeholder de delelige elementer med 5, og andre elementer er blevet fjernet.
Konklusion:
Forskellige anvendelser af erase()-funktionen er blevet vist i denne tutorial for at fjerne vektorelementer. C++ har mange andre funktioner til at fjerne elementet fra vektoren, og disse funktioner kan fjerne det enkelte element ad gangen. Men både enkelte og flere elementer fra en hvilken som helst position af vektoren kan fjernes ved at bruge vektor erase()-funktionen.