A tömb több adat tárolására szolgál, és a tömb elemeinek száma futási időben nem módosítható. Ez a probléma megoldható egy dinamikus tömbként működő vektor használatával. A vektorosztályban különböző függvények léteznek egy elem hozzáadására és eltávolítására 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ási időben, ami csökkenti a vektor méretét. Ennek a funkciónak a használatát ebben az oktatóanyagban ismertettük.
Szintaxis:
Az alábbiakban ennek a függvénynek kétféle szintaxisát mutatjuk be.
iterátor törlése ( iterátor pozíciója ) ;
A fenti erase() függvény egyetlen elem eltávolítására szolgál a vektorból, és egy iterátort ad vissza, és arra az elemre mutat, amelyet az utoljára törölt elem követ.
iterátor törlése ( iterátor kezdőpozíciója, iterátor végpozíciója ) ;
A fenti erase() függvény több elem eltávolítására szolgál a vektorból a függvény 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őriznie kell, hogy a g++ fordító telepítve van-e a rendszerben. Ha Visual Studio Code-ot használ, 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álták a C++ kód fordítására és végrehajtására. Az alábbiakban bemutatjuk az erase() függvény különböző felhasználási lehetőségeit az elemek vektorba történő beillesztésére.
1. példa: Távolítsa el az első elem 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 karakterlánc-értékek vektorát használták. A vektor értékei az első elem törlése előtt és után kerültek kinyomtatásra az erase() függvény segítségével egy paraméterrel.
//Tartsa be a szükséges könyvtárakat#include
#include
segítségével névtér std ;
//A vektor értékeinek megjelenítése
üres display_vector ( vektor < húr > gyümölcsök )
{
//Inicializálja a számlálót
int számláló = 1 ;
//Iterálja és írja ki a vektor elemeit ciklus 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ó elem-e vagy sem
ha ( számláló ! = gyümölcsök. méret ( ) )
cout << * ő << ', ' ;
más
cout << * ő ;
//Növelje a számlálót 1-gyel
számláló ++ ;
}
cout << endl ;
}
int fő- ( üres ) {
//Szövegadatok vektorának deklarálása
vektor < húr > gyümölcsök = { 'Narancs' , 'Banán' , 'Mangó' , 'Jack Fruit' , Licsi } ;
//A vektor meglévő értékeinek kinyomtatása
cout << 'A vektor értékei 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 eltávolítás után
cout << ' \n A vektor értékei 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ény segítségével. A kódban egész értékekből álló vektort használtak. 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.
//Tartsa be a szükséges könyvtárakat#include
#include
segítségével névtér std ;
//A vektor megjelenítése
üres display_vector ( vektor < int > számok )
{
//A vektor értékeinek kinyomtatása ciklus segítségével
számára ( auto ő = számok. kezdődik ( ) ; ő ! = számok. vége ( ) ; ő ++ )
cout << * ő << ' ' ;
//Új sor hozzáadása
cout << ' \n ' ;
}
int fő- ( ) {
//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
cout << 'Az eltávolítás előtti vektor értékei: ' << endl ;
display_vector ( intArray ) ;
//Két iterátor deklarálása az elemek tartományának a vektorból való eltávolításához
vektor < int > :: iterátor startEle, endEle ;
//Állítsa be az iterátort az első pozícióba
indítsa el őket = intArray. kezdődik ( ) ;
//Növelje meg a kezdő iterátort 2-vel
előleg ( indítsa el őket, 2 ) ;
//Az iterátor beállítása az utolsó pozícióba
endEle = intArray. vége ( ) ;
//Csökkentse a befejező iterátort 3-mal
előleg ( endEle, - 3 ) ;
//Elemek tartományának eltávolítása
intArray. törli ( startEle, endEle ) ;
//A vektor meglévő értékeinek kinyomtatása eltávolítás után
cout << ' \n A vektor értékei 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 a vektor 3. pozíciójától a 7. pozícióig tartó elemek eltávolításra kerültek.
3. példa: Távolítsa el az egyes 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ény segítségével. A kódban egy 7 egész elemből álló vektort deklaráltak. Ezután a „for” ciklus a vektorelemek iterálására és az 5-tel nem osztható elemek eltávolítására szolgál.
//Tartsa be a szükséges könyvtárakat#include
#include
segítségével névtér std ;
int fő- ( )
{
//Egész adatok vektorának deklarálása
vektor < int > számok = { 78 , Négy öt , 67 , 25 , 98 , 75 , 52 } ;
cout << 'A vektor eltávolítása előtti értékei: \n ' ;
számára ( int const & én : számok ) {
cout << én << '' ;
}
cout << endl ;
//Távolítsa el a vektorból azokat a számokat, amelyek nem oszthatók 5-tel
számára ( auto ő = számok. kezdődik ( ) ; ő ! = számok. vége ( ) ; ő ++ )
{
//Ellenőrizze, hogy a szám osztható-e 5-tel
ha ( * ő % 5 ! = 0 )
{
//Az elem eltávolítása az iterátor alapján
számok. törli ( ő -- ) ;
}
}
cout << 'A vektor értékei eltávolítás után: \n ' ;
számára ( int const & én : számok ) {
cout << én << '' ;
}
cout << 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, a többi elemet eltávolítottuk.
Következtetés:
Ebben az oktatóanyagban az erase() függvény különböző felhasználási lehetőségeit mutattuk be a vektorelemek eltávolítására. A C++ számos más funkcióval is rendelkezik, amelyekkel eltávolíthatja az elemet a vektorból, és ezek a függvények egyszerre csak egyetlen elemet távolíthatnak el. De mind az egyes, mind a többszörös elemek a vektor bármely pozíciójából eltávolíthatók a vector erase() függvény használatával.