Vector Erase () -toiminto C ++: ssa

Vector Erase Function C



Taulukkoa käytetään useiden tietojen tallentamiseen, ja taulukon elementtien lukumäärää ei 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 () -toimintoa käytetään poistamaan yksi tai useampi elementti vektorista ajon aikana, mikä pienentää vektorin kokoa. Toiminnon käyttö on selitetty tässä opetusohjelmassa.

Syntaksi:

Tämän toiminnon syntaksia on kahdenlaisia.







iteraattorin poisto(iteraattorin asento);

Yllä olevaa erase () -toimintoa käytetään yksittäisen elementin poistamiseen vektorista, ja se palauttaa iteraattorin ja osoittaa elementin, jota seuraa viimeksi poistettu elementti.



iteraattorin poisto(iteraattorin alkamispaikka, iteraattorin päättymispaikka);

Yllä olevaa pyyhkimistoimintoa () poistetaan useita elementtejä vektorista tämän funktion ensimmäisessä ja toisessa argumentissa mainitun sijainnin perusteella.



Edellytys:

Ennen kuin tarkistat tämän opetusohjelman esimerkit, sinun on tarkistettava, että g ++ -kääntäjä on asennettu tai ei järjestelmään. Jos käytät Visual Studio Codea, asenna tarvittavat laajennukset C ++ -lähdekoodin kääntämiseksi suoritettavan koodin luomiseksi. Tässä Visual Studio Code -sovellusta on käytetty C ++ -koodin kääntämiseen ja suorittamiseen. Erase () -toiminnon eri käyttötarkoitukset 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

#sisältää

#sisältää

käyttämällä nimiavaruustuntia;

// Näytä vektorin arvot

mitätöndisplay_vector(vektori<merkkijono>hedelmiä)

{

// Alusta laskuri

intlaskuri= 1;

// Toista ja tulosta vektorin elementit silmukan avulla

varten (autohän=hedelmiä.alkaa();hän!=hedelmiä.loppuun();hän++)

{

// Tarkista, että elementit ovat viimeinen elementti vai ei

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

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

muu

kustannus << *hän;

// Suurenna laskuria yhdellä

laskuri++;

}

kustannus <<endl;

}

inttärkein(mitätön) {

// Ilmoita merkkijonotietojen vektori

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

// Tulosta vektorin olemassa olevat arvot

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

display_vector(hedelmiä);

// Poista ensimmäinen elementti vektorista

hedelmiä.poistaa(hedelmiä.alkaa());

// Tulosta vektorin nykyiset arvot poiston jälkeen

kustannus << '' nVektorin arvot poiston jälkeen: ' <<endl;

display_vector(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 useita elementtejä vektorista käyttämällä erase () -toimintoa. Koodissa on käytetty kokonaislukuarvojen vektoria. Tässä on käytetty kahta iteraattoria vektorista poistettujen elementtien alueen asettamiseen. Poista () -toimintoa on käytetty kahden parametrin kanssa useiden elementtien poistamiseksi vektorista.

// Sisällytä tarvittavat kirjastot

#sisältää

#sisältää

käyttämällä nimiavaruustuntia;

// Näytä vektori

mitätöndisplay_vector(vektori<int>nums)

{

// Tulosta vektorin arvot silmukan avulla

varten(autohän=nums.alkaa();hän!=nums.loppuun() ;hän++)

kustannus << *hän<< '';

// Lisää uusi rivi

kustannus << '' n'';

}

inttärkein() {

// Ilmoita kokonaislukudatan vektori

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

// Tulosta vektorin olemassa olevat arvot

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

display_vector(intArray);

// Ilmoita kaksi iteraattoria elementtien alueen poistamiseksi vektorista

vektori<int> :: iteraattoristartEle, endEle;

// Aseta iteraattori ensimmäiseen asentoon

startEle=intArray.alkaa();

// Suurenna alkavaa iteraattoria 2: lla

etukäteen(startEle,2);

// Aseta iteraattori viimeiseen kohtaan

endEle=intArray.loppuun();

// Pienennä päättyvää iteraattoria 3: lla

etukäteen(endEle,-3);

// Poista elementtialue

intArray.poistaa(startEle, endEle);

// Tulosta vektorin nykyiset arvot poiston jälkeen

kustannus << '' nVektorin arvot poiston jälkeen: ' <<endl;

display_vector(intArray);

palata 0;

}

Lähtö:

Seuraava tulos tulee näkyviin yllä olevan koodin suorittamisen jälkeen. Iteraattoreiden alueen mukaan elementit vektorin kolmannesta sijainnista seitsemänteen on poistettu.

Esimerkki 3: Poista tietyt elementit

Luo C ++ -tiedosto seuraavalla koodilla poistaaksesi vektorin tietyt elementit käyttämällä erase () -toimintoa. Koodissa on ilmoitettu 7 kokonaislukuelementin vektori. Seuraavaksi 'for' -silmukalla on käytetty iteroimaan vektorielementtejä ja poistamaan vektorista ne elementit, jotka eivät ole jaettavissa 5: llä.

// Sisällytä tarvittavat kirjastot

#sisältää

#sisältää

käyttämällä nimiavaruustuntia;

inttärkein()

{

// Ilmoita kokonaislukudatan vektori

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

kustannus << 'Vektorin arvot ennen poistamista: n'';

varten (int const &i:numeroita) {

kustannus <<i<< '';

}

kustannus <<endl;

// Poista vektorin numerot, jotka eivät jakaudu 5: llä

varten (autohän=numeroita.alkaa();hän!=numeroita.loppuun();hän++)

{

// Tarkista, että numero on jaollinen 5: llä tai ei

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

{

// Poista elementti iteraattorin perusteella

numeroita.poistaa(hän-);

}

}

kustannus << '' Vektorin arvot poiston jälkeen: n'';

varten (int const &i:numeroita) {

kustannus <<i<< '';


}


kustannus <<endl;


palata 0;

}

Lähtö:

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

Johtopäätös:

Erase () -toiminnon eri käyttötarkoitukset on esitetty tässä opetusohjelmassa vektorielementtien poistamiseksi. C ++: lla on monia muita toimintoja elementin poistamiseksi vektorista, ja nämä toiminnot voivat poistaa yksittäisen elementin kerrallaan. Mutta sekä yksittäiset että useat elementit mistä tahansa vektorin paikasta voidaan poistaa käyttämällä vektorin poistopalvelua ().