Matrika se uporablja za shranjevanje več podatkov in števila elementov matrike med izvajanjem ni mogoče spremeniti. Ta problem je mogoče rešiti z uporabo vektorja, ki deluje kot dinamično polje. V vektorskem razredu obstajajo različne funkcije za dodajanje in odstranjevanje elementa iz vektorja. Funkcija erase() se uporablja za odstranitev enega ali več elementov iz vektorja med izvajanjem, kar zmanjša velikost vektorja. Uporaba te funkcije je bila razložena v tej vadnici.
Sintaksa:
Spodaj sta navedeni dve vrsti sintakse te funkcije.
brisanje iteratorja ( položaj iteratorja ) ;
Zgornja funkcija erase() se uporablja za odstranitev posameznega elementa iz vektorja in vrne iterator ter kaže na element, ki mu sledi zadnji izbrisani element.
brisanje iteratorja ( začetni_položaj iteratorja, končni_položaj iteratorja ) ;
Zgornja funkcija erase() se uporablja za odstranitev več elementov iz vektorja glede na položaj, omenjen v prvem in drugem argumentu te funkcije.
Predpogoj:
Preden preverite primere te vadnice, morate preveriti, ali je prevajalnik g++ nameščen v sistemu ali ne. Če uporabljate Visual Studio Code, namestite potrebne razširitve za prevajanje izvorne kode C++ za ustvarjanje izvedljive kode. Tu je bila za prevajanje in izvajanje kode C++ uporabljena aplikacija Visual Studio Code. Spodaj so prikazane različne uporabe funkcije erase() za vstavljanje elementov v vektor.
Primer-1: Odstranite prvi element elementa
Ustvarite datoteko C++ z naslednjo kodo, da odstranite element z začetka vektorja. V kodi je bil uporabljen vektor vrednosti niza. Vrednosti vektorja so bile natisnjene pred in po brisanju prvega elementa iz vektorja s funkcijo erase() z enim parametrom.
//Vključi potrebne knjižnice#include
#include
uporabo imenski prostor std ;
//Prikaži vrednosti vektorja
praznina prikazni_vektor ( vektor < vrvica > sadje )
{
//Inicializiraj števec
int števec = 1 ;
//Iteracija in tiskanje elementov vektorja z uporabo zanke
za ( avto on = sadje. začeti ( ) ; on ! = sadje. konec ( ) ; on ++ )
{
//Preverite, ali so elementi zadnji element ali ne
če ( števec ! = sadje. velikost ( ) )
cout << * on << ', ' ;
drugače
cout << * on ;
//Povečaj števec za 1
števec ++ ;
}
cout << konec ;
}
int glavni ( praznina ) {
//Deklarirajte vektor nizovnih podatkov
vektor < vrvica > sadje = { 'pomaranča' , 'banana' , 'Mango' , 'Jack Fruit' , Liči } ;
//Izpis obstoječih vrednosti vektorja
cout << 'Vrednosti vektorja pred odstranitvijo: ' << konec ;
prikazni_vektor ( sadje ) ;
//Odstrani prvi element iz vektorja
sadje. izbrisati ( sadje. začeti ( ) ) ;
//Natisni obstoječe vrednosti vektorja po odstranitvi
cout << ' \n Vrednosti vektorja po odstranitvi: ' << konec ;
prikazni_vektor ( sadje ) ;
vrnitev 0 ;
}
Izhod:
Po izvedbi zgornje kode se prikaže naslednji rezultat.
Primer-2: Odstranite več elementov
Ustvarite datoteko C++ z naslednjo kodo, da odstranite več elementov iz vektorja s funkcijo erase(). V kodi je bil uporabljen vektor celoštevilskih vrednosti. Tu sta bila uporabljena dva iteratorja za nastavitev obsega elementov, odstranjenih iz vektorja. Funkcija erase() je bila uporabljena z dvema parametroma za odstranitev več elementov iz vektorja.
//Vključi potrebne knjižnice#include
#include
uporabo imenski prostor std ;
//Prikaži vektor
praznina prikazni_vektor ( vektor < int > številke )
{
//Izpis vrednosti vektorja z uporabo zanke
za ( avto on = številke. začeti ( ) ; on ! = številke. konec ( ) ; on ++ )
cout << * on << ' ' ;
//Dodaj novo vrstico
cout << ' \n ' ;
}
int glavni ( ) {
//Deklarirajte vektor celih podatkov
vektor < int > intArray { 678 , 435 , 960 , 231 , 800 , 387 , 634 , 267 , 409 , 294 } ;
//Izpis obstoječih vrednosti vektorja
cout << 'Vrednosti vektorja pred odstranitvijo: ' << konec ;
prikazni_vektor ( intArray ) ;
//Deklarirajte dva iteratorja, da odstranite obseg elementov iz vektorja
vektor < int > :: iterator startEle, endEle ;
//Nastavi iterator na prvo mesto
začnite jih = intArray. začeti ( ) ;
//Povečaj začetni iterator za 2
vnaprej ( začni jih, 2 ) ;
//Nastavi iterator na zadnji položaj
endEle = intArray. konec ( ) ;
//Zmanjšaj končni iterator za 3
vnaprej ( endEle, - 3 ) ;
//Odstrani obseg elementov
intArray. izbrisati ( startEle, endEle ) ;
//Natisni obstoječe vrednosti vektorja po odstranitvi
cout << ' \n Vrednosti vektorja po odstranitvi: ' << konec ;
prikazni_vektor ( intArray ) ;
vrnitev 0 ;
}
Izhod:
Po izvedbi zgornje kode se prikaže naslednji rezultat. Glede na obseg iteratorjev so bili odstranjeni elementi od 3. do 7. položaja vektorja.
Primer-3: Odstranite določene elemente
Ustvarite datoteko C++ z naslednjo kodo, da odstranite določene elemente vektorja s funkcijo erase(). V kodi je deklariran vektor 7 celih elementov. Nato se je zanka 'za' uporabila za ponavljanje vektorskih elementov in odstranjevanje tistih elementov iz vektorja, ki niso deljivi s 5.
//Vključi potrebne knjižnice#include
#include
uporabo imenski prostor std ;
int glavni ( )
{
//Deklarirajte vektor celih podatkov
vektor < int > številke = { 78 , Štiri, pet , 67 , 25 , 98 , 75 , 52 } ;
cout << 'Vrednosti vektorja pred odstranitvijo: \n ' ;
za ( int konst & jaz : številke ) {
cout << jaz << ' ' ;
}
cout << konec ;
//Odstrani števila iz vektorja, ki niso deljiva s 5
za ( avto on = številke. začeti ( ) ; on ! = številke. konec ( ) ; on ++ )
{
//Preverite, ali je število deljivo s 5 ali ne
če ( * on % 5 ! = 0 )
{
//Odstrani element na podlagi iteratorja
številke. izbrisati ( on -- ) ;
}
}
cout << 'Vrednosti vektorja po odstranitvi: \n ' ;
za ( int konst & jaz : številke ) {
cout << jaz << ' ' ;
}
cout << konec ;
vrnitev 0 ;
}
Izhod:
Po izvedbi zgornje kode se prikaže naslednji rezultat. Izhod pokaže, da vektor vsebuje samo elemente, deljive s 5, drugi elementi pa so bili odstranjeni.
Zaključek:
V tej vadnici so bile prikazane različne uporabe funkcije erase() za odstranjevanje vektorskih elementov. C++ ima veliko drugih funkcij za odstranitev elementa iz vektorja in te funkcije lahko odstranijo en element naenkrat. Toda posamezne in več elementov s katerega koli položaja vektorja je mogoče odstraniti s funkcijo vektorskega brisanja().