Funkcia Vector Erase () v C ++

Vector Erase Function C



Pole sa používa na ukladanie viacerých údajov a počet prvkov poľa nie je možné za behu zmeniť. Tento problém je možné vyriešiť použitím vektora, ktorý funguje ako dynamické pole. V triede vektorov existujú rôzne funkcie na pridanie a odstránenie prvku z vektora. Funkcia erase () sa používa na odstránenie jedného alebo viacerých prvkov z vektora za behu, ktorý zmenšuje veľkosť vektora. Použitie tejto funkcie bolo vysvetlené v tomto návode.

Syntax:

Ďalej sú uvedené dva typy syntaxe tejto funkcie.







vymazanie iterátora(poloha iterátora);

Vyššie uvedená funkcia erase () sa používa na odstránenie jedného prvku z vektora a vráti iterátor a ukazuje na prvok, za ktorým nasleduje posledný vymazaný prvok.



vymazanie iterátora(iterátor počiatočná_pozícia, iterátor koncová_pozícia);

Vyššie uvedená funkcia erase () sa používa na odstránenie viacerých prvkov z vektora na základe polohy uvedenej v prvom a druhom argumente tejto funkcie.



Predpoklad:

Pred kontrolou príkladov tohto tutoriálu musíte skontrolovať, či je kompilátor g ++ v systéme nainštalovaný alebo nie. Ak používate kód Visual Studio, nainštalujte si potrebné rozšírenia na kompiláciu zdrojového kódu C ++ na vytvorenie spustiteľného kódu. Tu bola aplikácia Visual Studio Code použitá na kompiláciu a spustenie kódu C ++. Rôzne spôsoby použitia funkcie erase () na vloženie prvkov do vektora sú uvedené nižšie.





Príklad 1: Odstráňte prvý prvok prvku

Vytvorte súbor C ++ s nasledujúcim kódom na odstránenie prvku zo začiatku vektora. V kóde bol použitý vektor reťazcových hodnôt. Hodnoty vektora boli vytlačené pred a po vymazaní prvého prvku z vektora pomocou funkcie erase () s jedným parametrom.

// Zahrňte potrebné knižnice

#zahrnúť

#zahrnúť

použitím priestor mienhodiny;

// Zobrazenie hodnôt vektora

prázdnydisplay_vector(vektor<reťazec>ovocie)

{

// Inicializujte počítadlo

intpočítadlo= 1;

// Opakujte a vytlačte prvky vektora pomocou slučky

pre (autoon=ovocie.začať();on!=ovocie.koniec();on++)

{

// Skontrolujte, či sú prvky posledným prvkom alebo nie

keby(počítadlo!=ovocie.veľkosť())

náklady << *on<< ',';

inak

náklady << *on;

// Zvýšenie počítadla o 1

počítadlo++;

}

náklady <<endl;

}

intHlavná(prázdny) {

// Deklarovanie vektora reťazcových údajov

vektor<reťazec>ovocie= { „Oranžová“,„Banán“,„Mango“,„Jack Fruit“,„Lichi“ };

// Vytlačí existujúce hodnoty vektora

náklady << „Hodnoty vektora pred odstránením:“ <<endl;

display_vector(ovocie);

// Odstránenie prvého prvku z vektora

ovocie.vymazať(ovocie.začať());

// Po odstránení vytlačte existujúce hodnoty vektora

náklady << ' nHodnoty vektora po odstránení: ' <<endl;

display_vector(ovocie);

vrátiť sa 0;

}

Výkon:

Po spustení vyššie uvedeného kódu sa zobrazí nasledujúci výstup.



Príklad 2: Odstráňte viacero prvkov

Vytvorte súbor C ++ s nasledujúcim kódom na odstránenie viacerých prvkov z vektora pomocou funkcie erase (). V kóde bol použitý vektor celočíselných hodnôt. Na nastavenie rozsahu prvkov odstránených z vektora tu boli použité dva iterátory. Na odstránenie viacerých prvkov z vektora bola použitá funkcia erase () s dvoma parametrami.

// Zahrňte potrebné knižnice

#zahrnúť

#zahrnúť

použitím priestor mienhodiny;

// Zobrazí vektor

prázdnydisplay_vector(vektor<int>č)

{

// Vytlačte hodnoty vektora pomocou slučky

pre(autoon=č.začať();on!=č.koniec() ;on++)

náklady << *on<< '';

// Pridať nový riadok

náklady << ' n';

}

intHlavná() {

// Deklarovanie vektora celočíselných údajov

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

// Vytlačí existujúce hodnoty vektora

náklady << „Hodnoty vektora pred odstránením:“ <<endl;

display_vector(intArray);

// Deklarovaním dvoch iterátorov odstránite rozsah prvkov z vektora

vektor<int> :: iterátorstartEle, endEle;

// Nastavte iterátor na prvú pozíciu

startEle=intArray.začať();

// Zvýšte počiatočný iterátor o 2

vopred(startEle,2);

// Nastavte iterátor na poslednú pozíciu

endEle=intArray.koniec();

// Znížte koncový iterátor o 3

vopred(endEle,-3);

// Odstráňte rozsah prvkov

intArray.vymazať(startEle, endEle);

// Po odstránení vytlačte existujúce hodnoty vektora

náklady << ' nHodnoty vektora po odstránení: ' <<endl;

display_vector(intArray);

vrátiť sa 0;

}

Výkon:

Po spustení vyššie uvedeného kódu sa zobrazí nasledujúci výstup. Podľa rozsahu iterátorov boli prvky z 3. polohy do 7. polohy vektora odstránené.

Príklad 3: Odstráňte konkrétne prvky

Vytvorte súbor C ++ s nasledujúcim kódom na odstránenie konkrétnych prvkov vektora pomocou funkcie erase (). V kóde bol deklarovaný vektor 7 celočíselných prvkov. Ďalej slučka „for“ použila na iteráciu vektorových prvkov a odstránenie tých prvkov z vektora, ktoré nie sú deliteľné piatimi.

// Zahrňte potrebné knižnice

#zahrnúť

#zahrnúť

použitím priestor mienhodiny;

intHlavná()

{

// Deklarovanie vektora celočíselných údajov

vektor<int>čísla= { 78,Štyria, piati,67,25,98,75,52 };

náklady << „Hodnoty vektora pred odstránením: n';

pre (int konšt &i:čísla) {

náklady <<i<< '';

}

náklady <<endl;

// Odstráňte z vektora čísla, ktoré nie sú deliteľné piatimi

pre (autoon=čísla.začať();on!=čísla.koniec();on++)

{

// Skontrolujte, či je číslo deliteľné číslom 5 alebo nie

keby (*on% 5 != 0)

{

// Odstráňte prvok na základe iterátora

čísla.vymazať(on-);

}

}

náklady << „Hodnoty vektora po odstránení: n';

pre (int konšt &i:čísla) {

náklady <<i<< '';


}


náklady <<endl;


vrátiť sa 0;

}

Výkon:

Po spustení vyššie uvedeného kódu sa zobrazí nasledujúci výstup. Výstup ukazuje, že vektor obsahuje iba deliteľné prvky číslom 5 a ďalšie prvky boli odstránené.

Záver:

V tomto návode na odstránenie vektorových prvkov boli ukázané rôzne použitia funkcie erase (). C ++ má mnoho ďalších funkcií na odstránenie prvku z vektora a tieto funkcie môžu odstrániť jeden prvok súčasne. Ale jeden aj viac prvkov z akejkoľvek polohy vektora je možné odstrániť pomocou funkcie vector erase ().