Funkce Vector Erase() v C++

Funkce Vector Erase V C



Pole se používá k ukládání více dat a počet prvků pole nelze za běhu změnit. Tento problém lze vyřešit použitím vektoru, který funguje jako dynamické pole. Ve třídě vector existují různé funkce pro přidání a odebrání prvku z vektoru. Funkce erase() se používá k odstranění jednoho nebo více prvků z vektoru v době běhu, která zmenšuje velikost vektoru. Použití této funkce bylo vysvětleno v tomto tutoriálu.

Syntax:

Níže jsou uvedeny dva typy syntaxe této funkce.







vymazání iterátoru ( pozici iterátoru ) ;

Výše uvedená funkce erase() se používá k odstranění jednoho prvku z vektoru a vrací iterátor a ukazuje na prvek, za kterým následuje poslední vymazaný prvek.



vymazání iterátoru ( iterátor počáteční_pozice, iterátor koncová_pozice ) ;

Výše uvedená funkce erase() se používá k odstranění více prvků z vektoru na základě pozice uvedené v prvním a druhém argumentu této funkce.



Předpoklad:

Před kontrolou příkladů tohoto tutoriálu musíte zkontrolovat, zda je kompilátor g++ nainstalován nebo není v systému. Pokud používáte Visual Studio Code, nainstalujte potřebná rozšíření pro kompilaci zdrojového kódu C++ za účelem vytvoření spustitelného kódu. Zde byla ke kompilaci a spuštění kódu C++ použita aplikace Visual Studio Code. Níže jsou uvedena různá použití funkce erase() k vložení prvku (prvků) do vektoru.





Příklad-1: Odstraňte první prvek prvku

Chcete-li odstranit prvek ze začátku vektoru, vytvořte soubor C++ s následujícím kódem. V kódu byl použit vektor hodnot řetězce. Hodnoty vektoru byly vytištěny před a po odstranění prvního prvku z vektoru pomocí funkce erase() s jedním parametrem.

//Zahrňte potřebné knihovny

#include

#include

použitím jmenný prostor std ;

//Zobrazení hodnot vektoru

prázdnota zobrazit_vektor ( vektor < tětiva > ovoce )

{

//Inicializace počítadla

int čelit = 1 ;

//Opakujte a vytiskněte prvky vektoru pomocí smyčky

pro ( auto on = ovoce. začít ( ) ; on ! = ovoce. konec ( ) ; on ++ )

{

//Zkontrolujte, zda jsou prvky posledním prvkem nebo ne

-li ( čelit ! = ovoce. velikost ( ) )

cout << * on << ',' ;

jiný

cout << * on ;

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

čelit ++ ;

}

cout << endl ;

}

int hlavní ( prázdnota ) {

//Deklaruje vektor řetězcových dat

vektor < tětiva > ovoce = { 'Oranžový' , 'Banán' , 'Mango' , 'Jack Fruit' , Liči } ;

//Vytiskne existující hodnoty vektoru

cout << 'Hodnoty vektoru před odstraněním: ' << endl ;

zobrazit_vektor ( ovoce ) ;

//Odstranění prvního prvku z vektoru

ovoce. vymazat ( ovoce. začít ( ) ) ;

//Po odstranění vytiskne existující hodnoty vektoru

cout << ' \n Hodnoty vektoru po odstranění: ' << endl ;

zobrazit_vektor ( ovoce ) ;

vrátit se 0 ;

}

Výstup:

Po provedení výše uvedeného kódu se objeví následující výstup.



Příklad-2: Odstraňte více prvků

Vytvořte soubor C++ s následujícím kódem k odstranění více prvků z vektoru pomocí funkce erase(). V kódu byl použit vektor celočíselných hodnot. Zde byly použity dva iterátory pro nastavení rozsahu prvků odstraněných z vektoru. Funkce erase() byla použita se dvěma parametry k odstranění více prvků z vektoru.

//Zahrňte potřebné knihovny

#include

#include

použitím jmenný prostor std ;

//Zobrazení vektoru

prázdnota zobrazit_vektor ( vektor < int > čísla )

{

//Vytiskne hodnoty vektoru pomocí smyčky

pro ( auto on = čísla. začít ( ) ; on ! = čísla. konec ( ) ; on ++ )

cout << * on << '' ;

//Přidat nový řádek

cout << ' \n ' ;

}

int hlavní ( ) {

//Deklaruje vektor celočíselných dat

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

//Vytiskne existující hodnoty vektoru

cout << 'Hodnoty vektoru před odstraněním: ' << endl ;

zobrazit_vektor ( intArray ) ;

//Deklarujte dva iterátory pro odstranění rozsahu prvků z vektoru

vektor < int > :: iterátor startEle, endEle ;

//Nastaví iterátor na první pozici

spustit je = intArray. začít ( ) ;

//Zvýšení počátečního iterátoru o 2

záloha ( spustit je, 2 ) ;

//Nastaví iterátor na poslední pozici

endEle = intArray. konec ( ) ;

//Snížit koncový iterátor o 3

záloha ( endEle, - 3 ) ;

//Odebere rozsah prvků

intArray. vymazat ( startEle, endEle ) ;

//Po odstranění vytiskne existující hodnoty vektoru

cout << ' \n Hodnoty vektoru po odstranění: ' << endl ;

zobrazit_vektor ( intArray ) ;

vrátit se 0 ;

}

Výstup:

Po provedení výše uvedeného kódu se objeví následující výstup. Podle rozsahu iterátorů byly odstraněny prvky od 3. pozice do 7. pozice vektoru.

Příklad-3: Odstraňte specifické prvky

Vytvořte soubor C++ s následujícím kódem pro odstranění specifických prvků vektoru pomocí funkce erase(). V kódu byl deklarován vektor 7 celočíselných prvků. Dále se smyčka „for“ použila k iteraci prvků vektoru a odstranění těch prvků z vektoru, které nejsou dělitelné 5.

//Zahrňte potřebné knihovny

#include

#include

použitím jmenný prostor std ;

int hlavní ( )

{

//Deklaruje vektor celočíselných dat

vektor < int > čísla = { 78 , Čtyři pět , 67 , 25 , 98 , 75 , 52 } ;

cout << 'Hodnoty vektoru před odstraněním: \n ' ;

pro ( int konst & i : čísla ) {

cout << i << ' ' ;

}

cout << endl ;

//Odstraňte z vektoru čísla, která nejsou dělitelná 5

pro ( auto on = čísla. začít ( ) ; on ! = čísla. konec ( ) ; on ++ )

{

//Zkontrolujte, zda je číslo dělitelné 5 nebo ne

-li ( * on % 5 ! = 0 )

{

//Odstranění prvku na základě iterátoru

čísla. vymazat ( on -- ) ;

}

}

cout << 'Hodnoty vektoru po odstranění: \n ' ;

pro ( int konst & i : čísla ) {

cout << i << ' ' ;


}


cout << endl ;


vrátit se 0 ;

}

Výstup:

Po provedení výše uvedeného kódu se objeví následující výstup. Výstup ukazuje, že vektor obsahuje pouze dělitelné prvky 5 a ostatní prvky byly odstraněny.

Závěr:

V tomto tutoriálu byla ukázána různá použití funkce erase() k odstranění vektorových prvků. C++ má mnoho dalších funkcí pro odstranění prvku z vektoru a tyto funkce mohou odstranit jeden prvek najednou. Ale jak jednotlivé, tak vícenásobné prvky z libovolné pozice vektoru lze odstranit pomocí funkce vector erase().