Vector Erase () -funktion i C ++

Vector Erase Function C



Arrayen används för att lagra flera data, och antalet element i arrayen kan inte ändras vid körtiden. Detta problem kan lösas genom att använda en vektor som fungerar som en dynamisk array. Olika funktioner finns i vektorklassen för att lägga till och ta bort ett element från vektorn. Radera () -funktionen används för att ta bort ett eller flera element från vektorn vid körtiden som minskar storleken på vektorn. Användningen av denna funktion har förklarats i denna handledning.

Syntax:

Två typer av syntax för denna funktion har gett nedan.







iterator radera(iteratorposition);

Ovanstående radering () -funktion används för att ta bort ett enda element från vektorn, och det returnerar en iterator, och det pekar på elementet som följs av det senast raderade elementet.



iterator radera(iterator starts_position, iterator ending_position);

Ovanstående radering () -funktion används för att ta bort flera element från vektorn baserat på positionen som nämns i funktionens första och andra argument.



Nödvändig förutsättning:

Innan du kontrollerar exemplen på denna handledning måste du kontrollera att g ++ - kompilatorn är installerad eller inte i systemet. Om du använder Visual Studio Code installerar du de nödvändiga tilläggen för att kompilera C ++ - källkoden för att skapa den körbara koden. Här har programmet Visual Studio Code använts för att kompilera och köra C ++ - koden. Olika användningar av funktionen radera () för att infoga element (er) i en vektor har visat nedan.





Exempel 1: Ta bort det första elementelementet

Skapa en C ++ - fil med följande kod för att ta bort ett element från början av vektorn. En vektor med strängvärden har använts i koden. Vektorns värden har skrivits ut före och efter att det första elementet har tagits bort från vektorn med funktionen radera () med en parameter.

// Inkludera nödvändiga bibliotek

#omfatta

#omfatta

använder sig av namnrymdtimmar;

// Visa värdena för vektorn

tomhetdisplay_vector(vektor<sträng>frukt)

{

// Initiera räknaren

intdisken= 1;

// Iterera och skriv ut elementen i vektorn med hjälp av loop

för (bilhan=frukt.Börja();han!=frukt.slutet();han++)

{

// Kontrollera att elementen är det sista elementet eller inte

om(disken!=frukt.storlek())

kosta << *han<< ',';

annan

kosta << *han;

// Öka räknaren med 1

disken++;

}

kosta <<endl;

}

inthuvud(tomhet) {

// Deklarera en vektor med strängdata

vektor<sträng>frukt= { 'Orange','Banan','Mango','Jack Fruit','Lichi' };

// Skriv ut de befintliga värdena för vektorn

kosta << 'Vektorns värden före borttagning:' <<endl;

display_vector(frukt);

// Ta bort det första elementet från vektorn

frukt.radera(frukt.Börja());

// Skriv ut de befintliga värdena för vektorn efter borttagning

kosta << ' nVektorns värden efter borttagning: ' <<endl;

display_vector(frukt);

lämna tillbaka 0;

}

Produktion:

Följande utdata visas efter att koden ovan har körts.



Exempel 2: Ta bort flera element

Skapa en C ++ - fil med följande kod för att ta bort flera element från vektorn med funktionen radera (). En vektor med heltalsvärden har använts i koden. Två iteratorer har använts här för att ställa in intervallet av element som tagits bort från vektorn. Radera () -funktionen har använts med två parametrar för att ta bort flera element från vektorn.

// Inkludera nödvändiga bibliotek

#omfatta

#omfatta

använder sig av namnrymdtimmar;

// Visa vektorn

tomhetdisplay_vector(vektor<int>nums)

{

// Skriv ut värdena för vektorn med hjälp av loop

för(bilhan=nums.Börja();han!=nums.slutet() ;han++)

kosta << *han<< '';

// Lägg till ny rad

kosta << ' n';

}

inthuvud() {

// Deklarera en vektor med heltalsdata

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

// Skriv ut de befintliga värdena för vektorn

kosta << 'Vektorns värden före borttagning:' <<endl;

display_vector(intArray);

// Deklarera två iteratorer för att ta bort elementintervallet från vektorn

vektor<int> :: iteratorstartEle, endEle;

// Ställ iteratorn till den första positionen

startEle=intArray.Börja();

// Öka start -iteratorn med 2

förskott(startEle,2);

// Ställ iteratorn till den sista positionen

endEle=intArray.slutet();

// Minska slutteratorn med 3

förskott(endEle,-3);

// Ta bort elementintervallet

intArray.radera(startEle, endEle);

// Skriv ut de befintliga värdena för vektorn efter borttagning

kosta << ' nVektorns värden efter borttagning: ' <<endl;

display_vector(intArray);

lämna tillbaka 0;

}

Produktion:

Följande utdata visas efter att koden ovan har körts. Enligt iteratorernas intervall har elementen från det tredje läget till det sjunde läget för vektorn tagits bort.

Exempel 3: Ta bort de specifika elementen

Skapa en C ++ - fil med följande kod för att ta bort de specifika elementen i vektorn med funktionen radera (). En vektor med 7 heltalselement har deklarerats i koden. Därefter har 'för' -slingan använts för att iterera vektorelementen och ta bort de element från vektorn som inte är delbara med 5.

// Inkludera nödvändiga bibliotek

#omfatta

#omfatta

använder sig av namnrymdtimmar;

inthuvud()

{

// Deklarera en vektor med heltalsdata

vektor<int>tal= { 78,Fyra fem,67,25,98,75,52 };

kosta << 'Vektorns värden före borttagning: n';

för (int konst &i:tal) {

kosta <<i<< '';

}

kosta <<endl;

// Ta bort siffrorna från vektorn som inte är delbara med 5

för (bilhan=tal.Börja();han!=tal.slutet();han++)

{

// Kontrollera att numret är delbart med 5 eller inte

om (*han% 5 != 0)

{

// Ta bort elementet baserat på iteratorn

tal.radera(han-);

}

}

kosta << 'Vektorns värden efter borttagning: n';

för (int konst &i:tal) {

kosta <<i<< '';


}


kosta <<endl;


lämna tillbaka 0;

}

Produktion:

Följande utdata visas efter att koden ovan har körts. Utdata visar att vektorn endast innehåller de delbara elementen med 5 och andra element har tagits bort.

Slutsats:

Olika användningsområden för funktionen radera () har visats i denna handledning för att ta bort vektorelement. C ++ har många andra funktioner för att ta bort elementet från vektorn, och dessa funktioner kan ta bort det enda elementet åt gången. Men både enstaka och flera element från valfri position i vektorn kan tas bort med hjälp av funktionen radera radering ().