Funkce Vector Erase () v C ++

Vector Erase Function 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ě vektor existují různé funkce pro přidání a odebrání prvku z vektoru. Funkce erase () se používá k odebrání jednoho nebo více prvků z vektoru za běhu, což zmenšuje velikost vektoru. Použití této funkce bylo vysvětleno v tomto kurzu.

Syntax:

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







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

Výše uvedená funkce erase () se používá k odebrá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ě polohy uvedené v prvním a druhém argumentu této funkce.



Předpoklad:

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





Příklad-1: Odeberte první prvek prvku

Vytvořením souboru C ++ s následujícím kódem odeberete prvek ze začátku vektoru. V kódu byl použit vektor řetězcových hodnot. 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

#zahrnout

#zahrnout

použitím jmenný prostorhodiny;

// Zobrazení hodnot vektoru

prázdnédisplay_vector(vektor<tětiva>ovoce)

{

// Inicializujte počítadlo

intčelit= 1;

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

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

{

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

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

náklady << *on<< ',';

jiný

náklady << *on;

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

čelit++;

}

náklady <<endl;

}

inthlavní(prázdné) {

// Deklarace vektoru řetězcových dat

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

// Vytiskne existující hodnoty vektoru

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

display_vector(ovoce);

// Odebere první prvek z vektoru

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

// Vytiskněte stávající hodnoty vektoru po odebrání

náklady << ' nHodnoty vektoru po odebrání: ' <<endl;

display_vector(ovoce);

vrátit se 0;

}

Výstup:

Po spuštění výše uvedeného kódu se zobrazí následující výstup.



Příklad 2: Odebrání více prvků

Vytvořte soubor C ++ s následujícím kódem a odeberte 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 k nastavení rozsahu prvků odstraněných z vektoru. K odstranění více prvků z vektoru byla použita funkce erase () se dvěma parametry.

// Zahrňte potřebné knihovny

#zahrnout

#zahrnout

použitím jmenný prostorhodiny;

// Zobrazení vektoru

prázdnédisplay_vector(vektor<int>č)

{

// Vytiskněte hodnoty vektoru pomocí smyčky

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

náklady << *on<< '';

// Přidat nový řádek

náklady << ' n';

}

inthlavní() {

// Deklarace vektoru celočíselných dat

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

// Vytiskne existující hodnoty vektoru

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

display_vector(intArray);

// Deklarováním dvou iterátorů odstraníte rozsah prvků z vektoru

vektor<int> :: iterátorstartEle, endEle;

// Nastavte iterátor na první pozici

startEle=intArray.začít();

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

záloha(startEle,2);

// Nastaví iterátor na poslední pozici

endEle=intArray.konec();

// Snižte koncový iterátor o 3

záloha(endEle,-3);

// Odebrat rozsah prvků

intArray.vymazat(startEle, endEle);

// Vytiskněte stávající hodnoty vektoru po odebrání

náklady << ' nHodnoty vektoru po odebrání: ' <<endl;

display_vector(intArray);

vrátit se 0;

}

Výstup:

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

Příklad 3: Odeberte konkrétní prvky

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

// Zahrňte potřebné knihovny

#zahrnout

#zahrnout

použitím jmenný prostorhodiny;

inthlavní()

{

// Deklarace vektoru celočíselných dat

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

náklady << 'Hodnoty vektoru před odstraněním: n';

pro (int konst &:čísla) {

náklady <<<< '';

}

náklady <<endl;

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

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

{

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

-li (*on% 5 != 0)

{

// Odstraní prvek na základě iterátoru

čísla.vymazat(on-);

}

}

náklady << 'Hodnoty vektoru po odebrání: n';

pro (int konst &:čísla) {

náklady <<<< '';


}


náklady <<endl;


vrátit se 0;

}

Výstup:

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

Závěr:

V tomto kurzu byly ukázány různé způsoby použití funkce erase () k odstranění vektorových prvků. C ++ má mnoho dalších funkcí k odebrání prvku z vektoru a tyto funkce mohou odebrat jeden prvek najednou. Ale jeden i více prvků z jakékoli polohy vektoru lze odebrat pomocí funkce vector erase ().