Vector Erase()-funktio C++:ssa

Vector Erase Funktio C Ssa



Taulukkoa käytetään useiden tietojen tallentamiseen, eikä taulukon elementtien määrää voi muuttaa ajon aikana. Tämä ongelma voidaan ratkaista käyttämällä vektoria, joka toimii kuin dynaaminen taulukko. Vektoriluokassa on erilaisia ​​toimintoja elementin lisäämiseksi ja poistamiseksi vektorista. Erase()-funktiota käytetään poistamaan yksi tai useampi elementti vektorista ajon aikana, mikä pienentää vektorin kokoa. Tämän toiminnon käyttö on selitetty tässä opetusohjelmassa.

Syntaksi:

Tämän funktion kaksi syntaksityyppiä on annettu alla.







iteraattorin poisto ( iteraattorin sijainti ) ;

Yllä olevaa erase()-funktiota käytetään poistamaan yksittäinen elementti vektorista, ja se palauttaa iteraattorin ja osoittaa elementtiin, jota seuraa viimeksi poistettu elementti.



iteraattorin poisto ( iteraattorin aloituspaikka, iteraattorin lopetussijainti ) ;

Yllä olevaa erase()-funktiota käytetään poistamaan useita elementtejä vektorista tämän funktion ensimmäisessä ja toisessa argumentissa mainitun sijainnin perusteella.



Edellytys:

Ennen kuin tarkistat tämän opetusohjelman esimerkkejä, sinun on tarkistettava, onko g++-kääntäjä asennettu järjestelmään vai ei. Jos käytät Visual Studio Codea, asenna tarvittavat laajennukset kääntääksesi C++-lähdekoodin suoritettavan koodin luomiseksi. Tässä Visual Studio Code -sovellusta on käytetty C++-koodin kääntämiseen ja suorittamiseen. Erase()-funktion eri käyttötavat elementtien lisäämiseksi vektoriin on esitetty alla.





Esimerkki-1: Poista ensimmäinen elementti

Luo C++-tiedosto seuraavalla koodilla poistaaksesi elementin vektorin alusta. Koodissa on käytetty merkkijonoarvojen vektoria. Vektorin arvot on tulostettu ennen ja jälkeen ensimmäisen elementin poistamisen vektorista käyttämällä erase()-funktiota yhdellä parametrilla.

//Sisällytä tarvittavat kirjastot

#include

#sisällytä

käyttämällä nimiavaruus std ;

//Näytä vektorin arvot

mitätön näyttö_vektori ( vektori < merkkijono > hedelmiä )

{

//Alusta laskuri

int laskuri = 1 ;

//Iteroi ja tulosta vektorin elementit silmukan avulla

varten ( auto hän = hedelmiä. alkaa ( ) ; hän ! = hedelmiä. loppu ( ) ; hän ++ )

{

//Tarkista, onko elementit viimeinen elementti vai ei

jos ( laskuri ! = hedelmiä. koko ( ) )

cout << * hän << ', ' ;

muu

cout << * hän ;

//Kasvata laskuria 1:llä

laskuri ++ ;

}

cout << endl ;

}

int pää ( mitätön ) {

//Ilmoita merkkijonotietojen vektori

vektori < merkkijono > hedelmiä = { 'Oranssi' , 'Banaani' , 'Mango' , 'Jack Fruit' , Litsi } ;

//Tulosta vektorin olemassa olevat arvot

cout << 'Vektorin arvot ennen poistamista: ' << endl ;

näyttö_vektori ( hedelmiä ) ;

//Poista ensimmäinen elementti vektorista

hedelmiä. pyyhkiä ( hedelmiä. alkaa ( ) ) ;

//Tulosta vektorin nykyiset arvot poistamisen jälkeen

cout << ' \n Vektorin arvot poiston jälkeen: ' << endl ;

näyttö_vektori ( hedelmiä ) ;

palata 0 ;

}

Lähtö:

Seuraava tulos tulee näkyviin yllä olevan koodin suorittamisen jälkeen.



Esimerkki 2: Poista useita elementtejä

Luo C++-tiedosto seuraavalla koodilla poistaaksesi useat elementit vektorista käyttämällä erase()-funktiota. Koodissa on käytetty kokonaislukuarvojen vektoria. Tässä on käytetty kahta iteraattoria vektorista poistettujen elementtien alueen asettamiseen. Erase()-funktiota on käytetty kahdella parametrilla useiden elementtien poistamiseen vektorista.

//Sisällytä tarvittavat kirjastot

#sisällytä

#include

käyttämällä nimiavaruus std ;

//Näytä vektori

mitätön näyttö_vektori ( vektori < int > numeroita )

{

//Tulosta vektorin arvot silmukan avulla

varten ( auto hän = numeroita. alkaa ( ) ; hän ! = numeroita. loppu ( ) ; hän ++ )

cout << * hän << ' ' ;

//Lisää uusi rivi

cout << ' \n ' ;

}

int pää ( ) {

//Määritä kokonaislukutietojen vektori

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

//Tulosta vektorin olemassa olevat arvot

cout << 'Vektorin arvot ennen poistamista: ' << endl ;

näyttö_vektori ( intArray ) ;

//Ilmoita kaksi iteraattoria elementtien alueen poistamiseksi vektorista

vektori < int > :: iteraattori startEle, endEle ;

//Aseta iteraattori ensimmäiseen asentoon

aloita ne = intArray. alkaa ( ) ;

//Kasvata aloitusiteraattoria 2:lla

etukäteen ( aloittaa ne, 2 ) ;

//Aseta iteraattori viimeiseen kohtaan

endEle = intArray. loppu ( ) ;

//Pienennä lopullista iteraattoria 3:lla

etukäteen ( endEle, - 3 ) ;

//Poista elementtialue

intArray. pyyhkiä ( startEle, endEle ) ;

//Tulosta vektorin nykyiset arvot poistamisen jälkeen

cout << ' \n Vektorin arvot poiston jälkeen: ' << endl ;

näyttö_vektori ( intArray ) ;

palata 0 ;

}

Lähtö:

Seuraava tulos tulee näkyviin yllä olevan koodin suorittamisen jälkeen. Iteraattorien alueen mukaan elementit vektorin 3. asemasta 7. asemaan on poistettu.

Esimerkki-3: Poista tietyt elementit

Luo C++-tiedosto seuraavalla koodilla poistaaksesi vektorin tietyt elementit Erase()-funktiolla. Koodissa on ilmoitettu 7 kokonaislukuelementin vektori. Seuraavaksi 'for'-silmukkaa on käytetty iteroimaan vektorielementtejä ja poistamaan vektorista ne elementit, jotka eivät ole jaollisia viidellä.

//Sisällytä tarvittavat kirjastot

#include

#sisällytä

käyttämällä nimiavaruus std ;

int pää ( )

{

//Ilmoita kokonaislukutietojen vektori

vektori < int > numeroita = { 78 , Neljä viisi , 67 , 25 , 98 , 75 , 52 } ;

cout << 'Vektorin arvot ennen poistamista: \n ' ;

varten ( int konst & i : numeroita ) {

cout << i << '' ;

}

cout << endl ;

//Poista vektorista luvut, jotka eivät ole jaollisia viidellä

varten ( auto hän = numeroita. alkaa ( ) ; hän ! = numeroita. loppu ( ) ; hän ++ )

{

//Tarkista, onko luku jaollinen viidellä vai ei

jos ( * hän % 5 ! = 0 )

{

//Poista elementti iteraattorin perusteella

numeroita. pyyhkiä ( hän -- ) ;

}

}

cout << 'Vektorin arvot poiston jälkeen: \n ' ;

varten ( int konst & i : numeroita ) {

cout << i << '' ;


}


cout << endl ;


palata 0 ;

}

Lähtö:

Seuraava tulos tulee näkyviin yllä olevan koodin suorittamisen jälkeen. Tulos näyttää, että vektori sisältää vain viidellä jaettavat alkiot ja muut alkiot on poistettu.

Johtopäätös:

Erase()-funktion eri käyttötavat on esitetty tässä opetusohjelmassa vektorielementtien poistamiseen. C++:ssa on monia muita toimintoja elementin poistamiseksi vektorista, ja nämä toiminnot voivat poistaa yksittäisen elementin kerrallaan. Mutta sekä yksittäisiä että useita elementtejä mistä tahansa vektorin paikasta voidaan poistaa käyttämällä vektorin erase()-funktiota.