Funcția Vector Erase() în C++

Functia Vector Erase In C



Matricea este folosită pentru a stoca date multiple, iar numărul de elemente ale matricei nu poate fi modificat în timpul rulării. Această problemă poate fi rezolvată folosind un vector care funcționează ca o matrice dinamică. Există diferite funcții în clasa vectorului pentru a adăuga și elimina un element din vector. Funcția erase() este folosită pentru a elimina unul sau mai multe elemente din vector în timpul rulării care scade dimensiunea vectorului. Utilizările acestei funcții au fost explicate în acest tutorial.

Sintaxă:

Două tipuri de sintaxă ale acestei funcții au fost prezentate mai jos.







ștergerea iteratorului ( poziţia iteratorului ) ;

Funcția erase() de mai sus este folosită pentru a elimina un singur element din vector și returnează un iterator și indică elementul care este urmat de ultimul element șters.



ștergerea iteratorului ( iterator starting_position, iterator ending_position ) ;

Funcția erase() de mai sus este utilizată pentru a elimina mai multe elemente din vector pe baza poziției menționate în primul și al doilea argument al acestei funcții.



Condiție prealabilă:

Înainte de a verifica exemplele acestui tutorial, trebuie să verificați că compilatorul g++ este instalat sau nu în sistem. Dacă utilizați Visual Studio Code, atunci instalați extensiile necesare pentru a compila codul sursă C++ pentru a crea codul executabil. Aici, aplicația Visual Studio Code a fost folosită pentru a compila și executa codul C++. Mai jos sunt prezentate diferite utilizări ale funcției erase() pentru a insera element(e) într-un vector.





Exemplul-1: Eliminați primul element element

Creați un fișier C++ cu următorul cod pentru a elimina un element de la începutul vectorului. În cod a fost folosit un vector de valori de șir. Valorile vectorului au fost tipărite înainte și după ștergerea primului element din vector folosind funcția erase() cu un singur parametru.

//Include bibliotecile necesare

#include

#include

folosind spatiu de nume std ;

//Afișează valorile vectorului

vid display_vector ( vector < şir > fructe )

{

//Inițializați contorul

int tejghea = 1 ;

//Iterează și imprimă elementele vectorului folosind bucla

pentru ( auto el = fructe. ÎNCEPE ( ) ; el ! = fructe. Sfârşit ( ) ; el ++ )

{

//Verificați că elementele sunt ultimul element sau nu

dacă ( tejghea ! = fructe. mărimea ( ) )

cout << * el << ', ' ;

altfel

cout << * el ;

//Măriți contorul cu 1

tejghea ++ ;

}

cout << endl ;

}

int principal ( vid ) {

//Declară un vector de date șir

vector < şir > fructe = { 'Portocale' , 'Banană' , 'Mango' , 'Jack Fruit' , Lychee } ;

//Tipărește valorile existente ale vectorului

cout << 'Valorile vectorului înainte de a elimina: ' << endl ;

display_vector ( fructe ) ;

//Elimină primul element din vector

fructe. şterge ( fructe. ÎNCEPE ( ) ) ;

//Tipărește valorile existente ale vectorului după eliminare

cout << ' \n Valorile vectorului după eliminare: ' << endl ;

display_vector ( fructe ) ;

întoarcere 0 ;

}

Ieșire:

Următoarea ieșire va apărea după executarea codului de mai sus.



Exemplul-2: Eliminați mai multe elemente

Creați un fișier C++ cu următorul cod pentru a elimina mai multe elemente din vector folosind funcția erase(). În cod a fost folosit un vector de valori întregi. Două iteratoare au fost folosite aici pentru a seta gama de elemente eliminate din vector. Funcția erase() a fost folosită cu doi parametri pentru a elimina mai multe elemente din vector.

//Include bibliotecile necesare

#include

#include

folosind spatiu de nume std ;

//Afișează vectorul

vid display_vector ( vector < int > numere )

{

//Tipărește valorile vectorului folosind bucla

pentru ( auto el = numere. ÎNCEPE ( ) ; el ! = numere. Sfârşit ( ) ; el ++ )

cout << * el << ' ' ;

//Adăugați o linie nouă

cout << ' \n ' ;

}

int principal ( ) {

//Declară un vector de date întregi

vector < int > intArray { 678 , 435 , 960 , 231 , 800 , 387 , 634 , 267 , 409 , 294 } ;

//Tipărește valorile existente ale vectorului

cout << 'Valorile vectorului înainte de a elimina: ' << endl ;

display_vector ( intArray ) ;

//Declarați doi iteratoare pentru a elimina gama de elemente din vector

vector < int > :: iterator startEle, endEle ;

//Setați iteratorul în prima poziție

        startEle = intArray. ÎNCEPE ( ) ;

//Incrementează iteratorul de pornire cu 2

avans ( startEle, 2 ) ;

//Setați iteratorul în ultima poziție

endEle = intArray. Sfârşit ( ) ;

//Reduceți iteratorul final cu 3

avans ( endEle, - 3 ) ;

//Elimină gama de elemente

intArray. şterge ( startEle, endEle ) ;

//Tipărește valorile existente ale vectorului după eliminare

cout << ' \n Valorile vectorului după eliminare: ' << endl ;

display_vector ( intArray ) ;

întoarcere 0 ;

}

Ieșire:

Următoarea ieșire va apărea după executarea codului de mai sus. În funcție de intervalul iteratorilor, elementele de la poziția a 3-a la poziția a 7-a a vectorului au fost îndepărtate.

Exemplul-3: Eliminați elementele specifice

Creați un fișier C++ cu următorul cod pentru a elimina elementele specifice ale vectorului folosind funcția erase(). Un vector de 7 elemente întregi a fost declarat în cod. În continuare, bucla „for” a folosit pentru a repeta elementele vectoriale și pentru a elimina acele elemente din vector care nu sunt divizibile cu 5.

//Include bibliotecile necesare

#include

#include

folosind spatiu de nume std ;

int principal ( )

{

//Declară un vector de date întregi

vector < int > numere = { 78 , Patru cinci , 67 , 25 , 98 , 75 , 52 } ;

cout << „Valorile vectorului înainte de a elimina: \n ' ;

pentru ( int const & i : numere ) {

cout << i << ' ' ;

}

cout << endl ;

//Elimină numerele din vector care nu sunt divizibile cu 5

pentru ( auto el = numere. ÎNCEPE ( ) ; el ! = numere. Sfârşit ( ) ; el ++ )

{

//Verificați dacă numărul este divizibil cu 5 sau nu

dacă ( * el % 5 ! = 0 )

{

//Elimină elementul pe baza iteratorului

numere. şterge ( el -- ) ;

}

}

cout << „Valorile vectorului după eliminare: \n ' ;

pentru ( int const & i : numere ) {

cout << i << ' ' ;


}


cout << endl ;


întoarcere 0 ;

}

Ieșire:

Următoarea ieșire va apărea după executarea codului de mai sus. Rezultatul arată că vectorul conține elementele divizibile numai cu 5, iar alte elemente au fost eliminate.

Concluzie:

În acest tutorial au fost prezentate diferite utilizări ale funcției erase() pentru a elimina elemente vectoriale. C++ are multe alte funcții pentru a elimina elementul din vector, iar acele funcții pot elimina un singur element la un moment dat. Dar atât elementele simple, cât și mai multe din orice poziție a vectorului pot fi eliminate folosind funcția vector erase().