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ó.