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