Vector Erase() Funktion i C++

Vector Erase Funktion I C



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.