Vector Erase() funkcija C++

Vector Erase Funkcija C



Masyvas naudojamas keliems duomenims saugoti, o masyvo elementų skaičiaus paleidimo metu keisti negalima. Šią problemą galima išspręsti naudojant vektorių, kuris veikia kaip dinaminis masyvas. Vektorių klasėje yra įvairių funkcijų, skirtų elementui pridėti ir pašalinti iš vektoriaus. Funkcija erase () naudojama pašalinti vieną ar daugiau elementų iš vektoriaus vykdymo metu, o tai sumažina vektoriaus dydį. Šios funkcijos naudojimas buvo paaiškintas šioje pamokoje.

Sintaksė:

Toliau pateikiami du šios funkcijos sintaksės tipai.







iteratoriaus ištrynimas ( iteratoriaus padėtis ) ;

Aukščiau pateikta funkcija erase() naudojama atskiram elementui pašalinti iš vektoriaus, ji grąžina iteratorių ir nurodo elementą, po kurio seka paskutinis ištrintas elementas.



iteratoriaus ištrynimas ( iteratoriaus pradžios_pozicija, iteratoriaus pabaigos_pozicija ) ;

Aukščiau pateikta funkcija erase () naudojama norint pašalinti kelis elementus iš vektoriaus, remiantis padėtimi, nurodyta pirmajame ir antrajame šios funkcijos argumentuose.



Būtina sąlyga:

Prieš tikrindami šios pamokos pavyzdžius, turite patikrinti, ar sistemoje įdiegtas g++ kompiliatorius, ar ne. Jei naudojate „Visual Studio Code“, įdiekite reikiamus plėtinius, kad sukurtumėte C++ šaltinio kodą ir sukurtumėte vykdomąjį kodą. Čia „Visual Studio Code“ programa buvo naudojama C++ kodui kompiliuoti ir vykdyti. Toliau parodyta, kaip naudoti funkciją Erase() įterpiant elementą (-ius) į vektorių.





1 pavyzdys: pašalinkite pirmąjį elemento elementą

Sukurkite C++ failą su šiuo kodu, kad pašalintumėte elementą iš vektoriaus pradžios. Kode buvo panaudotas eilučių reikšmių vektorius. Vektoriaus reikšmės buvo išspausdintos prieš ir po pirmojo elemento ištrynimo iš vektoriaus naudojant funkciją erase() su vienu parametru.

//Įtraukite reikiamas bibliotekas

#include

#įtraukti

naudojant vardų erdvė std ;

//Rodyti vektoriaus reikšmes

tuštuma ekrano_vektorius ( vektorius < styga > vaisiai )

{

//Inicijuokite skaitiklį

tarpt skaitiklis = 1 ;

//Iteruokite ir atspausdinkite vektoriaus elementus naudodami kilpą

dėl ( automatinis jis = vaisiai. pradėti ( ) ; jis ! = vaisiai. galas ( ) ; jis ++ )

{

//Patikrinkite, ar elementai yra paskutinis, ar ne

jeigu ( skaitiklis ! = vaisiai. dydis ( ) )

cout << * jis << ', ' ;

Kitas

cout << * jis ;

//Padidinkite skaitiklį 1

skaitiklis ++ ;

}

cout << endl ;

}

tarpt pagrindinis ( tuštuma ) {

//Deklaruoti eilutės duomenų vektorių

vektorius < styga > vaisiai = { 'oranžinė' , 'Bananas' , 'Mango' , 'Džeko vaisius' , Ličiai } ;

//Atspausdinti esamas vektoriaus reikšmes

cout << 'Vektoriaus reikšmės prieš pašalinant: ' << endl ;

ekrano_vektorius ( vaisiai ) ;

//Pašalinkite pirmąjį elementą iš vektoriaus

vaisiai. ištrinti ( vaisiai. pradėti ( ) ) ;

//Pašalinus spausdinti esamas vektoriaus reikšmes

cout << \n Vektoriaus reikšmės pašalinus: ' << endl ;

ekrano_vektorius ( vaisiai ) ;

grąžinti 0 ;

}

Išvestis:

Įvykdžius aukščiau pateiktą kodą pasirodys ši išvestis.



2 pavyzdys: pašalinkite kelis elementus

Sukurkite C++ failą su šiuo kodu, kad pašalintumėte kelis elementus iš vektoriaus naudodami funkciją Erase (). Kode buvo naudojamas sveikųjų skaičių vektorius. Čia buvo naudojami du iteratoriai, norint nustatyti iš vektoriaus pašalintų elementų diapazoną. Funkcija erase() buvo naudojama su dviem parametrais, norint pašalinti kelis elementus iš vektoriaus.

//Įtraukite reikiamas bibliotekas

#įtraukti

#include

naudojant vardų erdvė std ;

//Parodykite vektorių

tuštuma ekrano_vektorius ( vektorius < tarpt > numeriai )

{

//Spausdinkite vektoriaus reikšmes naudodami kilpą

dėl ( automatinis jis = numeriai. pradėti ( ) ; jis ! = numeriai. galas ( ) ; jis ++ )

cout << * jis << ' ' ;

//Pridėti naują eilutę

cout << \n ;

}

tarpt pagrindinis ( ) {

//Deklaruoti sveikųjų duomenų vektorių

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

//Atspausdinti esamas vektoriaus reikšmes

cout << 'Vektoriaus reikšmės prieš pašalinant: ' << endl ;

ekrano_vektorius ( intArray ) ;

//Paskelbkite du iteratorius, kad pašalintumėte elementų diapazoną iš vektoriaus

vektorius < tarpt > :: iteratorius startEle, endEle ;

//Nustatykite iteratorių į pirmąją padėtį

pradėti juos = intArray. pradėti ( ) ;

//Padidinkite pradinį iteratorių 2

avansu ( pradėti juos, 2 ) ;

//Nustatykite iteratorių į paskutinę padėtį

endEle = intArray. galas ( ) ;

//Sumažinkite pabaigos iteratorių 3

avansu ( endEle, - 3 ) ;

//Pašalinti elementų diapazoną

intArray. ištrinti ( startEle, endEle ) ;

//Pašalinus spausdinti esamas vektoriaus reikšmes

cout << \n Vektoriaus reikšmės pašalinus: ' << endl ;

ekrano_vektorius ( intArray ) ;

grąžinti 0 ;

}

Išvestis:

Įvykdžius aukščiau pateiktą kodą pasirodys ši išvestis. Pagal iteratorių diapazoną elementai nuo 3-osios iki 7-osios vektoriaus padėties buvo pašalinti.

3 pavyzdys: pašalinkite konkrečius elementus

Sukurkite C++ failą su šiuo kodu, kad pašalintumėte konkrečius vektoriaus elementus naudodami funkciją Erase (). Kode deklaruotas 7 sveikųjų skaičių elementų vektorius. Be to, kilpa „už“ buvo naudojama vektoriaus elementams kartoti ir iš vektoriaus pašalinti tuos elementus, kurie nesidalija iš 5.

//Įtraukite reikiamas bibliotekas

#include

#include

naudojant vardų erdvė std ;

tarpt pagrindinis ( )

{

//Deklaruoti sveikųjų duomenų vektorių

vektorius < tarpt > numeriai = { 78 , Keturi. Penki , 67 , 25 , 98 , 75 , 52 } ;

cout << 'Vektoriaus reikšmės prieš pašalinant: \n ;

dėl ( tarpt konst & i : numeriai ) {

cout << i << '' ;

}

cout << endl ;

//Iš vektoriaus pašalinkite skaičius, kurie nesidalija iš 5

dėl ( automatinis jis = skaičių. pradėti ( ) ; jis ! = skaičių. galas ( ) ; jis ++ )

{

//Patikrinkite, ar skaičius dalijasi iš 5, ar ne

jeigu ( * jis % 5 ! = 0 )

{

//Pašalinkite elementą pagal iteratorių

skaičių. ištrinti ( jis -- ) ;

}

}

cout << 'Vektoriaus reikšmės pašalinus: \n ;

dėl ( tarpt konst & i : numeriai ) {

cout << i << '' ;


}


cout << endl ;


grąžinti 0 ;

}

Išvestis:

Įvykdžius aukščiau pateiktą kodą pasirodys ši išvestis. Išvestis rodo, kad vektoriuje yra dalijami tik iš 5 elementai, o kiti elementai buvo pašalinti.

Išvada:

Šiame vadove buvo parodytas skirtingas ištrinimo() funkcijos panaudojimas vektoriniams elementams pašalinti. C++ turi daug kitų funkcijų, skirtų elementui pašalinti iš vektoriaus, ir tos funkcijos gali pašalinti vieną elementą vienu metu. Bet ir vieną, ir kelis elementus iš bet kurios vektoriaus padėties galima pašalinti naudojant vektoriaus ištrynimo () funkciją.