Vector Erase() függvény C++-ban

Vector Erase Fuggveny C Ban



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.