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 ().