Pole sa používa na ukladanie viacerých údajov a počet prvkov poľa sa počas behu nedá zmeniť. Tento problém možno vyriešiť použitím vektora, ktorý funguje ako dynamické pole. V triede vector 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 v čase spustenia, čím sa zmenšuje veľkosť vektora. Použitie tejto funkcie bolo vysvetlené v tomto návode.
Syntax:
Nižšie sú uvedené dva typy syntaxe tejto funkcie.
iterátor vymazať ( pozíciu iterátora ) ;
Vyššie uvedená funkcia erase() sa používa na odstránenie jedného prvku z vektora a vracia iterátor a ukazuje na prvok, za ktorým nasleduje posledný vymazaný prvok.
iterátor vymazať ( počiatočná_pozícia iterátora, koncová_pozícia iterátora ) ;
Vyššie uvedená funkcia erase() sa používa na odstránenie viacerých prvkov z vektora na základe pozície uvedenej v prvom a druhom argumente tejto funkcie.
Predpoklad:
Pred skontrolovaním príkladov tohto tutoriálu musíte skontrolovať, či je v systéme nainštalovaný kompilátor g++ alebo nie. Ak používate Visual Studio Code, nainštalujte potrebné rozšírenia na kompiláciu zdrojového kódu C++ na vytvorenie spustiteľného kódu. Tu sa na kompiláciu a spustenie kódu C++ použila aplikácia Visual Studio Code. Rôzne použitia funkcie erase() na vloženie prvku (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 hodnôt reťazca. Hodnoty vektora boli vytlačené pred a po odstránení prvého prvku z vektora pomocou funkcie erase() s jedným parametrom.
//Zahrňte potrebné knižnice#include
#include
použitím menný priestor std ;
//Zobrazenie hodnôt vektora
neplatné display_vector ( vektor < reťazec > ovocie )
{
//Inicializácia počítadla
int počítadlo = 1 ;
//Opakujte a vytlačte prvky vektora pomocou slučky
pre ( auto on = ovocie. začať ( ) ; on ! = ovocie. koniec ( ) ; on ++ )
{
//Skontrolujte, či sú prvky posledným prvkom alebo nie
ak ( počítadlo ! = ovocie. veľkosť ( ) )
cout << * on << ',' ;
inak
cout << * on ;
//Zvýšte počítadlo o 1
počítadlo ++ ;
}
cout << endl ;
}
int Hlavná ( neplatné ) {
//Deklarovanie vektora reťazcových údajov
vektor < reťazec > ovocie = { 'oranžový' , 'banán' , 'Mango' , 'Jack Fruit' , Liči } ;
//Vytlačí existujúce hodnoty vektora
cout << 'Hodnoty vektora pred odstránením: ' << endl ;
display_vector ( ovocie ) ;
//Odstráni prvý prvok z vektora
ovocie. vymazať ( ovocie. začať ( ) ) ;
//Po odstránení vytlačí existujúce hodnoty vektora
cout << ' \n Hodnoty vektora po odstránení: ' << endl ;
display_vector ( ovocie ) ;
vrátiť 0 ;
}
Výkon:
Po vykonaní 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 sa tu použili dva iterátory. Na odstránenie viacerých prvkov z vektora bola použitá funkcia erase() s dvoma parametrami.
//Zahrňte potrebné knižnice#include
#include
použitím menný priestor std ;
//Zobrazenie vektora
neplatné display_vector ( vektor < int > čísla )
{
//Vytlačí hodnoty vektora pomocou cyklu
pre ( auto on = čísla. začať ( ) ; on ! = čísla. koniec ( ) ; on ++ )
cout << * on << '' ;
//Pridať nový riadok
cout << ' \n ' ;
}
int Hlavná ( ) {
//Deklarovanie vektora celočíselných údajov
vektor < int > intArray { 678 , 435 , 960 , 231 , 800 , 387 , 634 , 267 , 409 , 294 } ;
//Vytlačí existujúce hodnoty vektora
cout << 'Hodnoty vektora pred odstránením: ' << endl ;
display_vector ( intArray ) ;
//Deklarujte dva iterátory na odstránenie rozsahu prvkov z vektora
vektor < int > :: iterátor startEle, endEle ;
//Nastavíme iterátor na prvú pozíciu
spustiť ich = intArray. začať ( ) ;
//Zvýšte počiatočný iterátor o 2
vopred ( začať ich, 2 ) ;
//Nastavíme iterátor na poslednú pozíciu
endEle = intArray. koniec ( ) ;
//Znížte koncový iterátor o 3
vopred ( endEle, - 3 ) ;
//Odstránenie rozsahu prvkov
intArray. vymazať ( startEle, endEle ) ;
//Po odstránení vytlačí existujúce hodnoty vektora
cout << ' \n Hodnoty vektora po odstránení: ' << endl ;
display_vector ( intArray ) ;
vrátiť 0 ;
}
Výkon:
Po vykonaní vyššie uvedeného kódu sa zobrazí nasledujúci výstup. Podľa rozsahu iterátorov boli odstránené prvky z 3. pozície na 7. pozíciu vektora.
Príklad-3: Odstráňte špecifické prvky
Vytvorte súbor C++ s nasledujúcim kódom na odstránenie špecifických prvkov vektora pomocou funkcie erase(). V kóde bol deklarovaný vektor 7 celočíselných prvkov. Ďalej sa cyklus „for“ použil na iteráciu prvkov vektora a odstránenie tých prvkov z vektora, ktoré nie sú deliteľné 5.
//Zahrňte potrebné knižnice#include
#include
použitím menný priestor std ;
int Hlavná ( )
{
//Deklarovanie vektora celočíselných údajov
vektor < int > čísla = { 78 , Štyri, päť , 67 , 25 , 98 , 75 , 52 } ;
cout << 'Hodnoty vektora pred odstránením: \n ' ;
pre ( int konšt & i : čísla ) {
cout << i << ' ' ;
}
cout << endl ;
//Odstráň z vektora čísla, ktoré nie sú deliteľné 5
pre ( auto on = čísla. začať ( ) ; on ! = čísla. koniec ( ) ; on ++ )
{
//Skontrolujte, či je číslo deliteľné 5 alebo nie
ak ( * on % 5 ! = 0 )
{
//Odstránenie prvku na základe iterátora
čísla. vymazať ( on -- ) ;
}
}
cout << 'Hodnoty vektora po odstránení: \n ' ;
pre ( int konšt & i : čísla ) {
cout << i << ' ' ;
}
cout << endl ;
vrátiť 0 ;
}
Výkon:
Po vykonaní vyššie uvedeného kódu sa zobrazí nasledujúci výstup. Výstup ukazuje, že vektor obsahuje iba prvky deliteľné 5 a ostatné prvky boli odstránené.
Záver:
V tomto návode boli ukázané rôzne použitia funkcie erase() na odstránenie vektorových prvkov. C++ má mnoho ďalších funkcií na odstránenie prvku z vektora a tieto funkcie môžu odstrániť jeden prvok naraz. Ale pomocou funkcie vector erase() je možné odstrániť jednotlivé aj viaceré prvky z ľubovoľnej pozície vektora.