Vector Erase() Function sa C++

Vector Erase Function Sa C



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.