Vector Erase()-functie in C++

Vector Erase Functie In C



De array wordt gebruikt om meerdere gegevens op te slaan en het aantal elementen van de array kan tijdens de runtime niet worden gewijzigd. Dit probleem kan worden opgelost door een vector te gebruiken die werkt als een dynamische array. Er bestaan ​​verschillende functies in de vectorklasse om een ​​element aan de vector toe te voegen of te verwijderen. De functie erase() wordt gebruikt om tijdens de runtime een of meer elementen uit de vector te verwijderen, waardoor de grootte van de vector kleiner wordt. Het gebruik van deze functie is in deze tutorial uitgelegd.

Syntaxis:

Hieronder worden twee soorten syntaxis van deze functie gegeven.







iterator wissen ( iteratorpositie ) ;

De bovenstaande erase()-functie wordt gebruikt om een ​​enkel element uit de vector te verwijderen, en retourneert een iterator en wijst naar het element dat wordt gevolgd door het laatst gewiste element.



iterator wissen ( iterator startpositie, iterator eindpositie ) ;

De bovenstaande erase() functie wordt gebruikt om meerdere elementen uit de vector te verwijderen op basis van de positie vermeld in de eerste en tweede argumenten van deze functie.



Voorwaarde:

Voordat u de voorbeelden van deze tutorial bekijkt, moet u controleren of de g++-compiler wel of niet op het systeem is geïnstalleerd. Als u Visual Studio Code gebruikt, installeer dan de benodigde extensies om de C++-broncode te compileren en zo de uitvoerbare code te maken. Hier is de Visual Studio Code-applicatie gebruikt om de C++-code te compileren en uit te voeren. Hieronder ziet u verschillende toepassingen van de functie erase() om element(en) in een vector in te voegen.





Voorbeeld-1: Verwijder het eerste elementelement

Maak een C++-bestand met de volgende code om een ​​element uit het begin van de vector te verwijderen. In de code is een vector van stringwaarden gebruikt. De waarden van de vector zijn afgedrukt voor en na het verwijderen van het eerste element uit de vector met behulp van de functie erase() met één parameter.

//Neem de benodigde bibliotheken op

#include

#include

gebruik makend van naamruimte soa ;

// Geef de waarden van de vector weer

leegte weergave_vector ( vector < snaar > vruchten )

{

// Initialiseer de teller

int balie = 1 ;

//Itereer en druk de elementen van de vector af met behulp van een lus

voor ( auto Hij = vruchten. beginnen ( ) ; Hij ! = vruchten. einde ( ) ; Hij ++ )

{

// Controleer of de elementen het laatste element zijn of niet

als ( balie ! = vruchten. maat ( ) )

uit << * Hij << ', ' ;

anders

uit << * Hij ;

//Verhoog de teller met 1

balie ++ ;

}

uit << eindl ;

}

int voornaamst ( leegte ) {

//Declareer een vector met stringgegevens

vector < snaar > vruchten = { 'Oranje' , 'Banaan' , 'Mango' , 'JackFruit' , Lychee } ;

// Druk de bestaande waarden van de vector af

uit << 'De waarden van de vector vóór verwijderen: ' << eindl ;

weergave_vector ( vruchten ) ;

//Verwijder het eerste element uit de vector

vruchten. wissen ( vruchten. beginnen ( ) ) ;

// Druk de bestaande waarden van de vector af na verwijdering

uit << ' \N De waarden van de vector na verwijdering: ' << eindl ;

weergave_vector ( vruchten ) ;

opbrengst 0 ;

}

Uitgang:

De volgende uitvoer verschijnt na het uitvoeren van de bovenstaande code.



Voorbeeld 2: Meerdere elementen verwijderen

Maak een C++-bestand met de volgende code om de meerdere elementen uit de vector te verwijderen met behulp van de functie erase(). In de code is een vector met gehele waarden gebruikt. Er zijn hier twee iteratoren gebruikt om het bereik van elementen in te stellen die uit de vector zijn verwijderd. De functie erase() is gebruikt met twee parameters om meerdere elementen uit de vector te verwijderen.

//Neem de benodigde bibliotheken op

#include

#include

gebruik makend van naamruimte soa ;

// Geef de vector weer

leegte weergave_vector ( vector < int > cijfers )

{

// Druk de waarden van de vector af met behulp van een lus

voor ( auto Hij = cijfers. beginnen ( ) ; Hij ! = cijfers. einde ( ) ; Hij ++ )

uit << * Hij << ' ' ;

//Nieuwe regel toevoegen

uit << ' \N ' ;

}

int voornaamst ( ) {

//Declareer een vector met gehele gegevens

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

// Druk de bestaande waarden van de vector af

uit << 'De waarden van de vector vóór verwijderen: ' << eindl ;

weergave_vector ( intArray ) ;

//Declareer twee iterators om het bereik van elementen uit de vector te verwijderen

vector < int > :: iterator beginEle, eindEle ;

// Zet de iterator op de eerste positie

begin ze = intArray. beginnen ( ) ;

//Verhoog de start-iterator met 2

voorschot ( begin ze, 2 ) ;

// Zet de iterator op de laatste positie

eindeEle = intArray. einde ( ) ;

//Verlaag de eind-iterator met 3

voorschot ( eindeEle, - 3 ) ;

//Verwijder het bereik van elementen

intArray. wissen ( beginEle, eindEle ) ;

// Druk de bestaande waarden van de vector af na verwijdering

uit << ' \N De waarden van de vector na verwijdering: ' << eindl ;

weergave_vector ( intArray ) ;

opbrengst 0 ;

}

Uitgang:

De volgende uitvoer verschijnt na het uitvoeren van de bovenstaande code. Afhankelijk van het bereik van de iteratoren zijn de elementen van de 3e positie tot de 7e positie van de vector verwijderd.

Voorbeeld-3: Verwijder de specifieke elementen

Maak een C++-bestand met de volgende code om de specifieke elementen van de vector te verwijderen met behulp van de functie erase(). In de code is een vector van 7 gehele elementen gedeclareerd. Vervolgens heeft de ‘for’-lus gebruikt om de vectorelementen te herhalen en die elementen uit de vector te verwijderen die niet deelbaar zijn door 5.

//Neem de benodigde bibliotheken op

#include

#include

gebruik makend van naamruimte soa ;

int voornaamst ( )

{

//Declareer een vector met gehele gegevens

vector < int > cijfers = { 78 , Vier vijf , 67 , 25 , 98 , 75 , 52 } ;

uit << 'De waarden van de vector vóór verwijdering: \N ' ;

voor ( int const & i : cijfers ) {

uit << i << '' ;

}

uit << eindl ;

//Verwijder de getallen uit de vector die niet deelbaar zijn door 5

voor ( auto Hij = cijfers. beginnen ( ) ; Hij ! = cijfers. einde ( ) ; Hij ++ )

{

//Controleer of het getal deelbaar is door 5 of niet

als ( * Hij % 5 ! = 0 )

{

//Verwijder het element op basis van de iterator

cijfers. wissen ( Hij -- ) ;

}

}

uit << 'De waarden van de vector na verwijdering: \N ' ;

voor ( int const & i : cijfers ) {

uit << i << '' ;


}


uit << eindl ;


opbrengst 0 ;

}

Uitgang:

De volgende uitvoer verschijnt na het uitvoeren van de bovenstaande code. De uitvoer laat zien dat de vector alleen de deelbare elementen door 5 bevat en dat andere elementen zijn verwijderd.

Conclusie:

In deze tutorial zijn verschillende toepassingen van de functie erase() getoond om vectorelementen te verwijderen. De C++ heeft veel andere functies om het element uit de vector te verwijderen, en die functies kunnen het afzonderlijke element tegelijk verwijderen. Maar zowel enkele als meerdere elementen uit elke positie van de vector kunnen worden verwijderd met behulp van de functie vector erase().