Funktsioon Vector Erase () funktsioonis C ++

Vector Erase Function C



Massiivi kasutatakse mitmete andmete salvestamiseks ja massiivi elementide arvu ei saa käitusajal muuta. Selle probleemi saab lahendada, kasutades vektorit, mis töötab nagu dünaamiline massiiv. Vektoriklassis on erinevaid funktsioone elemendi lisamiseks ja eemaldamiseks vektorist. Funktsiooni erase () kasutatakse ühe või mitme elemendi eemaldamiseks vektorist käitusajal, mis vähendab vektori suurust. Selle õpetuse kasutusviise on selgitatud.

Süntaks:

Allpool on toodud selle funktsiooni kahte tüüpi süntaks.







iteraatori kustutamine(iteraatori asend);

Ülaltoodud erase () funktsiooni kasutatakse ühe elemendi eemaldamiseks vektorist ja see tagastab iteraatori ning osutab elemendile, millele järgneb viimati kustutatud element.



iteraatori kustutamine(iteraatori alguspositsioon, iteraatori lõppseis);

Ülaltoodud kustutamisfunktsiooni () kasutatakse mitmete elementide eemaldamiseks vektorist, lähtudes selle funktsiooni esimeses ja teises argumendis mainitud positsioonist.



Eeltingimus:

Enne selle õpetuse näidete kontrollimist peate kontrollima, kas kompilaator g ++ on süsteemi installitud või mitte. Kui kasutate Visual Studio koodi, installige käivitatava koodi loomiseks vajalikud laiendused C ++ lähtekoodi kompileerimiseks. Siin on C ++ koodi kompileerimiseks ja käivitamiseks kasutatud rakendust Visual Studio Code. Funktsiooni erase () erinevaid kasutusviise elemendi (de) sisestamiseks vektorisse on näidatud allpool.





Näide-1: eemaldage esimene elemendi element

Loo C ++ fail järgmise koodiga, et eemaldada element vektori algusest. Koodis on kasutatud stringiväärtuste vektorit. Vektori väärtused on trükitud enne ja pärast esimese elemendi kustutamist vektorist, kasutades ühe parameetriga funktsiooni erase ().

// Kaasa vajalikud teegid

#kaasake

#kaasake

kasutades nimeruumtundi;

// Vektori väärtuste kuvamine

tühinedisplay_vector(vektor<string>puuviljad)

{

// Vormista loendur

intloendur= 1;

// Iterate ja printige vektori elemente silmuse abil

eest (autotema=puuviljad.alustada();tema!=puuviljad.lõpp();tema++)

{

// Kontrollige, kas elemendid on viimane element või mitte

kui(loendur!=puuviljad.suurus())

maksma << *tema<< ',';

muidu

maksma << *tema;

// Suurendage loendurit 1 võrra

loendur++;

}

maksma <<endl;

}

intpeamine(tühine) {

// Stringiandmete vektori deklareerimine

vektor<string>puuviljad= { 'Oranž','Banaan','Mango','Jack Fruit','Lichi' };

// Prindi vektori olemasolevad väärtused

maksma << 'Vektori väärtused enne eemaldamist:' <<endl;

display_vector(puuviljad);

// Eemaldage vektorist esimene element

puuviljad.kustutada(puuviljad.alustada());

// Prindi pärast eemaldamist vektori olemasolevad väärtused

maksma << ' nVektori väärtused pärast eemaldamist: ' <<endl;

display_vector(puuviljad);

tagasi 0;

}

Väljund:

Pärast ülaltoodud koodi täitmist kuvatakse järgmine väljund.



Näide-2: eemaldage mitu elementi

Looge järgmise koodiga C ++ -fail, et eemaldada mitu elementi vektorist, kasutades funktsiooni erase (). Koodis on kasutatud täisarvuliste väärtuste vektorit. Vektorist eemaldatud elementide vahemiku määramiseks on siin kasutatud kahte iteraatorit. Funktsiooni erase () on kasutatud kahe parameetriga, et eemaldada vektorist mitu elementi.

// Kaasa vajalikud teegid

#kaasake

#kaasake

kasutades nimeruumtundi;

// Kuva vektor

tühinedisplay_vector(vektor<int>nums)

{

// Printige vektori väärtused silmuse abil

eest(autotema=nums.alustada();tema!=nums.lõpp() ;tema++)

maksma << *tema<< '';

// Lisa uus rida

maksma << ' n';

}

intpeamine() {

// Täisarvuliste andmete vektori deklareerimine

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

// Prindi vektori olemasolevad väärtused

maksma << 'Vektori väärtused enne eemaldamist:' <<endl;

display_vector(intArray);

// Deklareerige kaks iteraatorit, et eemaldada vektorist elementide vahemik

vektor<int> :: iteraatorstartEle, endEle;

// Seadke iteraator esimesse asendisse

startEle=intArray.alustada();

// Suurendage algus iteraatorit 2 võrra

ette(startEle,2);

// Seadke iteraator viimasele positsioonile

endEle=intArray.lõpp();

// Vähendage lõppevat iteraatorit 3 võrra

ette(endEle,-3);

// Eemalda valik elemente

intArray.kustutada(startEle, endEle);

// Prindi pärast eemaldamist vektori olemasolevad väärtused

maksma << ' nVektori väärtused pärast eemaldamist: ' <<endl;

display_vector(intArray);

tagasi 0;

}

Väljund:

Pärast ülaltoodud koodi täitmist kuvatakse järgmine väljund. Vastavalt iteraatorite vahemikule on elemendid eemaldatud vektori 3. positsioonist kuni 7. positsiooni.

Näide-3: eemaldage konkreetsed elemendid

Looge järgmise koodiga C ++ fail, et eemaldada vektori spetsiifilised elemendid, kasutades funktsiooni erase (). Koodis on deklareeritud 7 täisarvulise elemendiga vektor. Järgmisena on tsükkel „for” kasutanud vektorielementide iteratsiooni ja eemaldanud vektorist need elemendid, mis ei ole jagatavad 5 -ga.

// Kaasa vajalikud teegid

#kaasake

#kaasake

kasutades nimeruumtundi;

intpeamine()

{

// Täisarvuliste andmete vektori deklareerimine

vektor<int>numbrid= { 78,Neli, viis,67,25,98,75,52 };

maksma << 'Vektori väärtused enne eemaldamist: n';

eest (int const &i:numbrid) {

maksma <<i<< '';

}

maksma <<endl;

// Eemaldage vektorist need numbrid, mis ei jagu 5 -ga

eest (autotema=numbrid.alustada();tema!=numbrid.lõpp();tema++)

{

// Kontrollige, kas arv jagub 5 -ga või mitte

kui (*tema% 5 != 0)

{

// Eemalda element iteraatori põhjal

numbrid.kustutada(tema-);

}

}

maksma << 'Vektori väärtused pärast eemaldamist: n';

eest (int const &i:numbrid) {

maksma <<i<< '';


}


maksma <<endl;


tagasi 0;

}

Väljund:

Pärast ülaltoodud koodi täitmist kuvatakse järgmine väljund. Väljund näitab, et vektor sisaldab ainult 5 -ga jagatavaid elemente ja muud elemendid on eemaldatud.

Järeldus:

Selles juhendis on vektori elementide eemaldamiseks näidatud funktsiooni erase () erinevaid kasutusviise. C ++ -l on palju muid funktsioone elemendi eemaldamiseks vektorist ja need funktsioonid võivad eemaldada ühe elemendi korraga. Kuid vektori kustutamise () funktsiooni abil saab eemaldada nii üksikuid kui ka mitu elementi vektori mis tahes asukohast.