Ang array ay ginagamit upang mag-imbak ng maraming data, at ang bilang ng mga elemento ng array ay hindi mababago sa oras ng pagtakbo. Ang problemang ito ay maaaring malutas sa pamamagitan ng paggamit ng isang vector na gumagana tulad ng isang dynamic na array. Mayroong iba't ibang mga function sa klase ng vector upang magdagdag at mag-alis ng isang elemento mula sa vector. Ang erase() function ay ginagamit upang alisin ang isa o higit pang elemento mula sa vector sa oras ng pagtakbo na nagpapababa sa laki ng vector. Ang mga gamit ng function na ito ay ipinaliwanag sa tutorial na ito.
Syntax:
Dalawang uri ng syntax ng function na ito ang ibinigay sa ibaba.
pagbubura ng iterator ( posisyon ng iterator ) ;
Ang function na erase() sa itaas ay ginagamit upang alisin ang isang elemento mula sa vector, at ibinabalik nito ang isang iterator, at itinuturo nito ang elemento na sinusundan ng huling nabura na elemento.
pagbubura ng iterator ( iterator starting_position, iterator ending_position ) ;
Ang function na erase() sa itaas ay ginagamit upang alisin ang maraming elemento mula sa vector batay sa posisyong binanggit sa una at pangalawang argumento ng function na ito.
Paunang kinakailangan:
Bago suriin ang mga halimbawa ng tutorial na ito, kailangan mong suriin kung ang g++ compiler ay naka-install o wala sa system. Kung gumagamit ka ng Visual Studio Code, pagkatapos ay i-install ang mga kinakailangang extension para i-compile ang C++ source code para gawin ang executable code. Dito, ginamit ang Visual Studio Code application upang i-compile at isagawa ang C++ code. Iba't ibang paggamit ng erase() function upang magpasok ng (mga) elemento sa isang vector ay ipinakita sa ibaba.
Halimbawa-1: Alisin ang unang elemento ng elemento
Lumikha ng C++ file na may sumusunod na code upang alisin ang isang elemento mula sa simula ng vector. Ang isang vector ng mga halaga ng string ay ginamit sa code. Ang mga halaga ng vector ay na-print bago at pagkatapos tanggalin ang unang elemento mula sa vector gamit ang erase() function na may isang parameter.
//Isama ang mga kinakailangang aklatan#include
#include
gamit namespace std ;
//Ipakita ang mga halaga ng vector
walang bisa display_vector ( vector < string > mga prutas )
{
//Initialize ang counter
int counter = 1 ;
//Ulitin at i-print ang mga elemento ng vector gamit ang loop
para sa ( sasakyan siya = mga prutas. magsimula ( ) ; siya ! = mga prutas. wakas ( ) ; siya ++ )
{
//Suriin kung ang mga elemento ay ang huling elemento o hindi
kung ( counter ! = mga prutas. laki ( ) )
cout << * siya << ',' ;
iba pa
cout << * siya ;
//Itaas ang counter ng 1
counter ++ ;
}
cout << endl ;
}
int pangunahing ( walang bisa ) {
//Magdeklara ng vector ng string data
vector < string > mga prutas = { 'Kahel' , 'saging' , 'mangga' , 'Jack Fruit' , Lychee } ;
//I-print ang umiiral na mga halaga ng vector
cout << 'Ang mga halaga ng vector bago alisin: ' << endl ;
display_vector ( mga prutas ) ;
//Alisin ang unang elemento mula sa vector
mga prutas. burahin ( mga prutas. magsimula ( ) ) ;
// I-print ang umiiral na mga halaga ng vector pagkatapos alisin
cout << ' \n Ang mga halaga ng vector pagkatapos alisin: ' << endl ;
display_vector ( mga prutas ) ;
bumalik 0 ;
}
Output:
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang code sa itaas.
Halimbawa-2: Mag-alis ng maraming elemento
Lumikha ng C++ file na may sumusunod na code upang alisin ang maraming elemento mula sa vector gamit ang erase() function. Ang isang vector ng mga halaga ng integer ay ginamit sa code. Dalawang iterator ang ginamit dito upang itakda ang hanay ng mga elementong inalis mula sa vector. Ang function na erase() ay ginamit na may dalawang parameter upang alisin ang maraming elemento mula sa vector.
//Isama ang mga kinakailangang aklatan#include
#include
gamit namespace std ;
//Ipakita ang vector
walang bisa display_vector ( vector < int > numero )
{
// I-print ang mga halaga ng vector gamit ang loop
para sa ( sasakyan siya = numero. magsimula ( ) ; siya ! = numero. wakas ( ) ; siya ++ )
cout << * siya << '' ;
//Magdagdag ng bagong linya
cout << ' \n ' ;
}
int pangunahing ( ) {
//Ipahayag ang isang vector ng integer data
vector < int > intArray { 678 , 435 , 960 , 231 , 800 , 387 , 634 , 267 , 409 , 294 } ;
//I-print ang umiiral na mga halaga ng vector
cout << 'Ang mga halaga ng vector bago alisin: ' << endl ;
display_vector ( intArray ) ;
//Ipahayag ang dalawang iterator upang alisin ang hanay ng mga elemento mula sa vector
vector < int > :: umuulit startEle, endEle ;
//Itakda ang iterator sa unang posisyon
simulan mo sila = intArray. magsimula ( ) ;
// Dagdagan ang panimulang iterator ng 2
advance ( simulan mo sila, 2 ) ;
//Itakda ang iterator sa huling posisyon
endEle = intArray. wakas ( ) ;
//Bawasan ang nagtatapos na iterator ng 3
advance ( endEle, - 3 ) ;
//Alisin ang hanay ng mga elemento
intArray. burahin ( startEle, endEle ) ;
// I-print ang umiiral na mga halaga ng vector pagkatapos alisin
cout << ' \n Ang mga halaga ng vector pagkatapos alisin: ' << endl ;
display_vector ( intArray ) ;
bumalik 0 ;
}
Output:
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang code sa itaas. Ayon sa hanay ng mga iterator, ang mga elemento mula sa ika-3 posisyon hanggang sa ika-7 na posisyon ng vector ay inalis.
Halimbawa-3: Alisin ang mga partikular na elemento
Gumawa ng C++ file na may sumusunod na code upang alisin ang mga partikular na elemento ng vector gamit ang erase() function. Ang isang vector ng 7 integer na elemento ay idineklara sa code. Susunod, ang 'para' na loop ay ginamit upang umulit ang mga elemento ng vector at alisin ang mga elemento mula sa vector na hindi nahahati ng 5.
//Isama ang mga kinakailangang aklatan#include
#include
gamit namespace std ;
int pangunahing ( )
{
//Ipahayag ang isang vector ng integer data
vector < int > numero = { 78 , Apat. Lima , 67 , 25 , 98 , 75 , 52 } ;
cout << 'Ang mga halaga ng vector bago alisin: \n ' ;
para sa ( int const & i : numero ) {
cout << i << '' ;
}
cout << endl ;
//Alisin ang mga numero mula sa vector na hindi mahahati ng 5
para sa ( sasakyan siya = numero. magsimula ( ) ; siya ! = numero. wakas ( ) ; siya ++ )
{
//Suriin ang numero ay nahahati sa 5 o hindi
kung ( * siya % 5 ! = 0 )
{
//Alisin ang elemento batay sa iterator
numero. burahin ( siya -- ) ;
}
}
cout << 'Ang mga halaga ng vector pagkatapos alisin: \n ' ;
para sa ( int const & i : numero ) {
cout << i << '' ;
}
cout << endl ;
bumalik 0 ;
}
Output:
Ang sumusunod na output ay lilitaw pagkatapos isagawa ang code sa itaas. Ang output ay nagpapakita na ang vector ay naglalaman ng mga divisible na elemento ng 5 lamang, at ang iba pang mga elemento ay inalis.
Konklusyon:
Ang iba't ibang paggamit ng erase() function ay ipinakita sa tutorial na ito upang alisin ang mga elemento ng vector. Ang C++ ay may maraming iba pang mga function upang alisin ang elemento mula sa vector, at ang mga function na iyon ay maaaring mag-alis ng isang elemento sa isang pagkakataon. Ngunit parehong isa at maramihang elemento mula sa anumang posisyon ng vector ay maaaring alisin sa pamamagitan ng paggamit ng vector erase() function.