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