Funkcia Vector Erase() v C++

Funkcia Vector Erase V C



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.