Vector Erase () függvény C ++ nyelven

Vector Erase Function C



A tömb több adat tárolására szolgál, és a tömb elemeinek száma nem módosítható a futás idején. Ez a probléma megoldható egy olyan vektor használatával, amely dinamikus tömbként működik. A vektorosztályban különböző függvények léteznek egy elem hozzáadásához és eltávolításához a vektorból. Az erase () függvény egy vagy több elem eltávolítására szolgál a vektorból a futás idején, ami csökkenti a vektor méretét. Ennek a funkciónak a használatát ismertetjük ebben az oktatóanyagban.

Szintaxis:

Ennek a függvénynek a szintaxisának két típusát adtuk meg alább.







iterátor törlés(iterátor pozíciója);

A fenti törlés () függvény egyetlen elem eltávolítására szolgál a vektorból, és iterátort ad vissza, és arra az elemre mutat, amelyet az utoljára törölt elem követ.



iterátor törlés(iterátor kezdő_helyzet, iterátor végső_helyzet);

A fenti törlés () függvény több elem eltávolítására szolgál a vektorból a funkció első és második argumentumában említett pozíció alapján.



Előfeltétel:

Az oktatóanyag példáinak ellenőrzése előtt ellenőrizze, hogy a g ++ fordító telepítve van -e a rendszerben. Ha Visual Studio Code -ot használ, akkor telepítse a szükséges bővítményeket a C ++ forráskód fordításához a végrehajtható kód létrehozásához. Itt a Visual Studio Code alkalmazást használtuk a C ++ kód összeállításához és végrehajtásához. Az alábbiakban bemutatjuk az erase () függvény különböző felhasználási módjait az elem (ek) vektorba illesztéséhez.





1. példa: Távolítsa el az első elemet

Hozzon létre egy C ++ fájlt a következő kóddal, hogy eltávolítson egy elemet a vektor elejéről. A kódban egy karakterlánc -értékek vektorát használtuk. A vektor értékei az első elem törlése előtt és után kerültek kinyomtatásra a vektorból az erase () függvény segítségével, egy paraméterrel.

// Tartalmazza a szükséges könyvtárakat

#befoglalni

#befoglalni

segítségével névtérórák;

// A vektor értékeinek megjelenítése

üresdisplay_vector(vektor<húr>gyümölcsök)

{

// Inicializálja a számlálót

intszámláló= 1;

// Ismételje meg és nyomtassa ki a vektor elemeit hurok segítségével

számára (autoő=gyümölcsök.kezdődik();ő!=gyümölcsök.vége();ő++)

{

// Ellenőrizze, hogy az elemek az utolsó elemek vagy sem

ha(számláló!=gyümölcsök.méret())

költség << *ő<< ',';

más

költség << *ő;

// Növelje a számlálót 1 -gyel

számláló++;

}

költség <<endl;

}

intfő-(üres) {

// String adatok vektorának deklarálása

vektor<húr>gyümölcsök= { 'Narancssárga','Banán','Mangó','Jack Fruit','Lichi' };

// A vektor meglévő értékeinek kinyomtatása

költség << 'A vektor értékei az eltávolítás előtt:' <<endl;

display_vector(gyümölcsök);

// Az első elem eltávolítása a vektorból

gyümölcsök.törli(gyümölcsök.kezdődik());

// A vektor meglévő értékeinek kinyomtatása az eltávolítás után

költség << ' nA vektor értékei az eltávolítás után: ' <<endl;

display_vector(gyümölcsök);

Visszatérés 0;

}

Kimenet:

A fenti kód végrehajtása után a következő kimenet jelenik meg.



2. példa: Több elem eltávolítása

Hozzon létre egy C ++ fájlt a következő kóddal, hogy eltávolítsa a több elemet a vektorból az erase () függvénnyel. A kódban egész értékű vektort használtunk. Itt két iterátort használtak a vektorból eltávolított elemek tartományának beállítására. Az erase () függvényt két paraméterrel használták több elem eltávolítására a vektorból.

// Tartalmazza a szükséges könyvtárakat

#befoglalni

#befoglalni

segítségével névtérórák;

// A vektor megjelenítése

üresdisplay_vector(vektor<int>nums)

{

// Nyomtassa ki a vektor értékeit ciklus segítségével

számára(autoő=nums.kezdődik();ő!=nums.vége() ;ő++)

költség << *ő<< '';

// Új sor hozzáadása

költség << ' n';

}

intfő-() {

// Egész adatok vektorának deklarálása

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

// A vektor meglévő értékeinek kinyomtatása

költség << 'A vektor értékei az eltávolítás előtt:' <<endl;

display_vector(intArray);

// Két iterátor deklarálása az elemek tartományának eltávolításához a vektorból

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

// Állítsa az iterátort az első pozícióba

startEle=intArray.kezdődik();

// Növelje a kezdő iterátort 2 -vel

előleg(startEle,2);

// Állítsa az iterátort az utolsó pozícióba

endEle=intArray.vége();

// Csökkentse a befejező iterátort 3 -mal

előleg(endEle,-3);

// Elemtartomány eltávolítása

intArray.törli(startEle, endEle);

// A vektor meglévő értékeinek kinyomtatása az eltávolítás után

költség << ' nA vektor értékei az eltávolítás után: ' <<endl;

display_vector(intArray);

Visszatérés 0;

}

Kimenet:

A fenti kód végrehajtása után a következő kimenet jelenik meg. Az iterátorok tartományának megfelelően eltávolítottuk a vektor 3. és 7. pozíciói közötti elemeket.

3. példa: Távolítsa el a konkrét elemeket

Hozzon létre egy C ++ fájlt a következő kóddal, hogy eltávolítsa a vektor egyes elemeit az erase () függvénnyel. A kódban 7 egész elemből álló vektor került deklarálásra. Ezután a „for” hurok a vektorelemek iterálására és a vektorból azokat az elemeket távolította el, amelyek nem oszthatók 5 -tel.

// Tartalmazza a szükséges könyvtárakat

#befoglalni

#befoglalni

segítségével névtérórák;

intfő-()

{

// Egész adatok vektorának deklarálása

vektor<int>számokat= { 78,Négy öt,67,25,98,75,52 };

költség << 'A vektor értékei az eltávolítás előtt: n';

számára (int const &én:számokat) {

költség <<én<< '';

}

költség <<endl;

// Távolítsa el a számokat a vektorból, amelyek nem oszthatók 5 -tel

számára (autoő=számokat.kezdődik();ő!=számokat.vége();ő++)

{

// Ellenőrizze, hogy a szám osztható -e 5 -tel vagy sem

ha (*ő% 5 != 0)

{

// Az elem eltávolítása az iterátor alapján

számokat.törli(ő-);

}

}

költség << 'A vektor értékei az eltávolítás után: n';

számára (int const &én:számokat) {

költség <<én<< '';


}


költség <<endl;


Visszatérés 0;

}

Kimenet:

A fenti kód végrehajtása után a következő kimenet jelenik meg. A kimenet azt mutatja, hogy a vektor csak az 5 -tel osztható elemeket tartalmazza, és a többi elem eltávolításra került.

Következtetés:

Ebben az oktatóanyagban az erase () függvény különböző felhasználási módjait mutattuk be a vektoros elemek eltávolítására. A C ++ számos más funkcióval rendelkezik az elem eltávolításához a vektorból, és ezek a funkciók egyszerre eltávolíthatják az egyetlen elemet. A vektor erase () függvényével azonban a vektor bármely pozíciójából származó egyetlen és több elem is eltávolítható.