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.