Vector Erase() Functie in C++

Vector Erase Function C



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

Syntaxis:

Hieronder zijn twee soorten syntaxis van deze functie weergegeven.







iterator wissen(iterator positie);

De bovenstaande functie erase() 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 functie erase() wordt gebruikt om meerdere elementen uit de vector te verwijderen op basis van de positie die wordt genoemd 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 is geïnstalleerd of niet in het systeem. Als u Visual Studio Code gebruikt, installeer dan de benodigde extensies om de C++-broncode te compileren om de uitvoerbare code te maken. Hier is de toepassing Visual Studio Code gebruikt om de C++-code te compileren en uit te voeren. Hieronder worden verschillende toepassingen van de erase()-functie weergegeven 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 aan het begin van de vector te verwijderen. In de code is een vector van tekenreekswaarden gebruikt. De waarden van de vector zijn afgedrukt voor en na het verwijderen van het eerste element uit de vector met de functie wissen() met één parameter.

//Benodigde bibliotheken opnemen

#erbij betrekken

#erbij betrekken

gebruik makend van naamruimteuur;

//Toon de waarden van de vector

leegtedisplay_vector(vector<snaar>fruit)

{

// Initialiseer de teller

intbalie= 1;

// Herhaal en print de elementen van de vector met loop

voor (autohij=vruchten.beginnen();hij!=vruchten.einde();hij++)

{

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

indien(balie!=vruchten.maat())

kosten << *hij<< ',';

anders

kosten << *hij;

// Verhoog de teller met 1

balie++;

}

kosten <<eindel;

}

inthoofd(leegte) {

//Declareer een vector van string data

vector<snaar>fruit= { 'Oranje','Banaan','Mango','Jackfruit','Lichi' };

// Druk de bestaande waarden van de vector af

kosten << 'De waarden van de vector vóór verwijderen: ' <<eindel;

display_vector(fruit);

//Verwijder het eerste element uit de vector

vruchten.wissen(vruchten.beginnen());

// Druk de bestaande waarden van de vector af na het verwijderen

kosten << 'NDe waarden van de vector na verwijderen: ' <<eindel;

display_vector(fruit);

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 de functie wissen(). In de code is een vector van gehele waarden gebruikt. Er zijn hier twee iterators gebruikt om het bereik van elementen in te stellen die uit de vector worden verwijderd. De functie erase() is gebruikt met twee parameters om meerdere elementen uit de vector te verwijderen.

//Benodigde bibliotheken opnemen

#erbij betrekken

#erbij betrekken

gebruik makend van naamruimteuur;

//Toon de vector

leegtedisplay_vector(vector<int>nums)

{

// Druk de waarden van de vector af met loop

voor(autohij=nummers.beginnen();hij!=nummers.einde() ;hij++)

kosten << *hij<< '';

//Nieuwe regel toevoegen

kosten << 'N';

}

inthoofd() {

//Declareer een vector van integer data

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

// Druk de bestaande waarden van de vector af

kosten << 'De waarden van de vector vóór verwijderen: ' <<eindel;

display_vector(intArray);

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

vector<int> :: iteratorbeginEle, eindEle;

// Zet de iterator op de eerste positie

beginEle=intArray.beginnen();

// Verhoog de start-iterator met 2

voorschot(beginEle,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 het verwijderen

kosten << 'NDe waarden van de vector na verwijderen: ' <<eindel;

display_vector(intArray);

opbrengst 0;

}

Uitgang:

De volgende uitvoer verschijnt na het uitvoeren van de bovenstaande code. Volgens het bereik van de iterators zijn de elementen van de 3e positie naar 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 de functie wissen(). Een vector van 7 integer-elementen is gedeclareerd in de code. 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.

//Benodigde bibliotheken opnemen

#erbij betrekken

#erbij betrekken

gebruik makend van naamruimteuur;

inthoofd()

{

//Declareer een vector van integer data

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

kosten << 'De waarden van de vector vóór verwijderen:N';

voor (int const &l:nummers) {

kosten <<l<< '';

}

kosten <<eindel;

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

voor (autohij=nummers.beginnen();hij!=nummers.einde();hij++)

{

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

indien (*hij% 5 != 0)

{

//Verwijder het element op basis van de iterator

nummers.wissen(hij-);

}

}

kosten << 'De waarden van de vector na verwijderen:N';

voor (int const &l:nummers) {

kosten <<l<< '';


}


kosten <<eindel;


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 zelfstudie zijn verschillende toepassingen van de functie wissen() getoond om vectorelementen te verwijderen. De C++ heeft veel andere functies om het element uit de vector te verwijderen, en die functies kunnen het enkele element tegelijk verwijderen. Maar zowel enkele als meerdere elementen van elke positie van de vector kunnen worden verwijderd met behulp van de vector erase() functie.