Vector Erase() funktsioon C++ keeles

Vector Erase Funktsioon C Keeles



Massiivi kasutatakse mitme andmete salvestamiseks ja massiivi elementide arvu ei saa käitamisajal muuta. Selle probleemi saab lahendada dünaamilise massiivina töötava vektori abil. Vektoriklassis on elemendi lisamiseks ja vektorist eemaldamiseks erinevad funktsioonid. Funktsiooni erase() kasutatakse ühe või mitme elemendi eemaldamiseks vektorist käitamise ajal, mis vähendab vektori suurust. Selle funktsiooni kasutamist on selles õpetuses selgitatud.

Süntaks:

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







iteraatori kustutamine ( iteraatori asukoht ) ;

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



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

Ülaltoodud funktsiooni erase() kasutatakse vektorist mitme elemendi eemaldamiseks selle funktsiooni esimeses ja teises argumendis mainitud positsiooni alusel.



Eeltingimus:

Enne selle õpetuse näidete kontrollimist peate kontrollima, kas g++ kompilaator on süsteemi installitud või mitte. Kui kasutate Visual Studio koodi, installige käivitatava koodi loomiseks C++ lähtekoodi kompileerimiseks vajalikud laiendused. Siin on C++ koodi kompileerimiseks ja täitmiseks kasutatud Visual Studio Code rakendust. Allpool on näidatud funktsiooni erase() erinevad kasutusviisid elemendi(te) sisestamiseks vektorisse.





Näide-1: eemaldage esimene element

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

//Kaasake vajalikud teegid

#include

#include

kasutades nimeruum std ;

//vektori väärtuste kuvamine

tühine kuva_vektor ( vektor < string > puuviljad )

{

//Initsialiseeri loendur

int loendur = 1 ;

//Itereerige ja printige vektori elemendid tsükli abil

jaoks ( auto ta = puuviljad. alustada ( ) ; ta ! = puuviljad. lõpp ( ) ; ta ++ )

{

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

kui ( loendur ! = puuviljad. suurus ( ) )

cout << * ta << ', ' ;

muidu

cout << * ta ;

//Suurendage loendurit 1 võrra

loendur ++ ;

}

cout << endl ;

}

int peamine ( tühine ) {

//Deklareerib stringiandmete vektori

vektor < string > puuviljad = { 'oranž' , 'banaan' , 'Mango' , 'Jack Fruit' , litši } ;

//Prindib vektori olemasolevad väärtused

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

kuva_vektor ( puuviljad ) ;

//Eemalda vektorist esimene element

puuviljad. kustutada ( puuviljad. alustada ( ) ) ;

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

cout << ' \n Vektori väärtused pärast eemaldamist: ' << endl ;

kuva_vektor ( puuviljad ) ;

tagasi 0 ;

}

Väljund:

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



Näide-2: eemaldage mitu elementi

Looge C++-fail järgmise koodiga, et eemaldada vektorist mitu elementi funktsiooni erase() abil. 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.

//Kaasake vajalikud teegid

#include

#include

kasutades nimeruum std ;

//Vektori kuvamine

tühine kuva_vektor ( vektor < int > numbrid )

{

//Trüki vektori väärtused tsükli abil

jaoks ( auto ta = numbrid. alustada ( ) ; ta ! = numbrid. lõpp ( ) ; ta ++ )

cout << * ta << ' ' ;

//Lisa uus rida

cout << ' \n ' ;

}

int peamine ( ) {

//Deklareerib täisarvuliste andmete vektori

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

//Prindib vektori olemasolevad väärtused

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

kuva_vektor ( intArray ) ;

//Elementide vahemiku vektorist eemaldamiseks deklareerige kaks iteraatorit

vektor < int > :: iteraator startEle, endEle ;

//Seadke iteraator esimesse asendisse

alustada neid = intArray. alustada ( ) ;

//Kasvatage alustavat iteraatorit 2 võrra

ettemaks ( alustada neid, 2 ) ;

//Seadista iteraator viimasele positsioonile

endEle = intArray. lõpp ( ) ;

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

ettemaks ( endEle, - 3 ) ;

//Eemalda elementide vahemik

intArray. kustutada ( startEle, endEle ) ;

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

cout << ' \n Vektori väärtused pärast eemaldamist: ' << endl ;

kuva_vektor ( intArray ) ;

tagasi 0 ;

}

Väljund:

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

Näide-3: eemaldage konkreetsed elemendid

Looge C++-fail järgmise koodiga, et eemaldada vektori konkreetsed elemendid funktsiooni erase() abil. Koodis on deklareeritud 7 täisarvu elemendist koosnev vektor. Järgmiseks on for-silmus kasutatud vektori elementide itereerimiseks ja nende elementide eemaldamiseks vektorist, mis ei jagu 5-ga.

//Kaasake vajalikud teegid

#include

#include

kasutades nimeruum std ;

int peamine ( )

{

//Deklareerib täisarvuliste andmete vektori

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

cout << 'Vektori väärtused enne eemaldamist: \n ' ;

jaoks ( int konst & i : numbrid ) {

cout << i << '' ;

}

cout << endl ;

//Eemaldage vektorist arvud, mis ei jagu 5-ga

jaoks ( auto ta = numbrid. alustada ( ) ; ta ! = numbrid. lõpp ( ) ; ta ++ )

{

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

kui ( * ta % 5 ! = 0 )

{

//Eemaldage element iteraatori põhjal

numbrid. kustutada ( ta -- ) ;

}

}

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

jaoks ( int konst & i : numbrid ) {

cout << i << '' ;


}


cout << endl ;


tagasi 0 ;

}

Väljund:

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

Järeldus:

Selles õpetuses on näidatud erinevaid erase() funktsiooni kasutusviise vektorelementide eemaldamiseks. C++-l on elemendi vektorist eemaldamiseks palju muid funktsioone ja need funktsioonid võivad eemaldada üksiku elemendi korraga. Kuid nii üksikuid kui ka mitut elementi saab vektori mis tahes positsioonist eemaldada, kasutades vektori erase() funktsiooni.