La matriu s'utilitza per emmagatzemar diverses dades i el nombre d'elements de la matriu no es pot canviar en temps d'execució. Aquest problema es pot resoldre utilitzant un vector que funcioni com una matriu dinàmica. Existeixen diferents funcions a la classe vectorial per afegir i eliminar un element del vector. La funció erase() s'utilitza per eliminar un o més elements del vector en el temps d'execució que disminueix la mida del vector. Els usos d'aquesta funció s'han explicat en aquest tutorial.
Sintaxi:
A continuació s'han donat dos tipus de sintaxis d'aquesta funció.
esborrat per iterador ( posició de l'iterador ) ;
La funció erase() anterior s'utilitza per eliminar un sol element del vector, i retorna un iterador i apunta a l'element que va seguit de l'últim element esborrat.
esborrat per iterador ( posició_inici de l'iterador, posició_final de l'iterador ) ;
La funció erase() anterior s'utilitza per eliminar diversos elements del vector en funció de la posició esmentada al primer i segon argument d'aquesta funció.
Requisit previ:
Abans de comprovar els exemples d'aquest tutorial, heu de comprovar que el compilador g++ està instal·lat o no al sistema. Si utilitzeu Visual Studio Code, instal·leu les extensions necessàries per compilar el codi font C++ per crear el codi executable. Aquí, s'ha utilitzat l'aplicació Visual Studio Code per compilar i executar el codi C++. A continuació es mostren diferents usos de la funció erase() per inserir elements en un vector.
Exemple-1: elimina el primer element de l'element
Creeu un fitxer C++ amb el codi següent per eliminar un element del principi del vector. S'ha utilitzat un vector de valors de cadena al codi. Els valors del vector s'han imprès abans i després de suprimir el primer element del vector mitjançant la funció erase() amb un paràmetre.
//Inclou les biblioteques necessàries#inclou
#inclou
utilitzant espai de noms std ;
//Mostra els valors del vector
buit mostrar_vector ( vector < corda > fruites )
{
//Inicialitzar el comptador
int comptador = 1 ;
//Iterar i imprimir els elements del vector mitjançant bucle
per ( automàtic ell = fruites. començar ( ) ; ell ! = fruites. final ( ) ; ell ++ )
{
//Comproveu que els elements siguin l'últim element o no
si ( comptador ! = fruites. mida ( ) )
cout << * ell << ', ' ;
altra cosa
cout << * ell ;
//Incrementa el comptador en 1
comptador ++ ;
}
cout << endl ;
}
int principal ( buit ) {
//Declara un vector de dades de cadena
vector < corda > fruites = { 'Taronja' , 'Plàtan' , 'Mango' , 'Jack Fruit' , Litxi } ;
//Imprimeix els valors existents del vector
cout << 'Els valors del vector abans d'eliminar: ' << endl ;
mostrar_vector ( fruites ) ;
//Elimineu el primer element del vector
fruites. esborrar ( fruites. començar ( ) ) ;
//Imprimeix els valors existents del vector després d'eliminar
cout << ' \n Els valors del vector després d'eliminar: ' << endl ;
mostrar_vector ( fruites ) ;
tornar 0 ;
}
Sortida:
La següent sortida apareixerà després d'executar el codi anterior.
Exemple 2: elimina diversos elements
Creeu un fitxer C++ amb el codi següent per eliminar els múltiples elements del vector mitjançant la funció erase(). S'ha utilitzat un vector de valors enters al codi. Aquí s'han utilitzat dos iteradors per establir el rang d'elements eliminats del vector. La funció erase() s'ha utilitzat amb dos paràmetres per eliminar diversos elements del vector.
//Inclou les biblioteques necessàries#inclou
#inclou
utilitzant espai de noms std ;
//Mostra el vector
buit mostrar_vector ( vector < int > nombres )
{
//Imprimeix els valors del vector mitjançant bucle
per ( automàtic ell = nombres. començar ( ) ; ell ! = nombres. final ( ) ; ell ++ )
cout << * ell << ' ' ;
//Afegeix una nova línia
cout << ' \n ' ;
}
int principal ( ) {
//Declara un vector de dades enteres
vector < int > intArray { 678 , 435 , 960 , 231 , 800 , 387 , 634 , 267 , 409 , 294 } ;
//Imprimeix els valors existents del vector
cout << 'Els valors del vector abans d'eliminar: ' << endl ;
mostrar_vector ( intArray ) ;
//Declarar dos iteradors per eliminar el rang d'elements del vector
vector < int > :: iterador startEle, endEle ;
// Estableix l'iterador a la primera posició
començar-los = intArray. començar ( ) ;
//Incrementa l'iterador inicial en 2
avançar ( començar-los, 2 ) ;
// Estableix l'iterador a l'última posició
fi Ele = intArray. final ( ) ;
//Disminueix l'iterador final en 3
avançar ( fi Ele, - 3 ) ;
//Elimineu el rang d'elements
intArray. esborrar ( startEle, endEle ) ;
//Imprimeix els valors existents del vector després d'eliminar
cout << ' \n Els valors del vector després d'eliminar: ' << endl ;
mostrar_vector ( intArray ) ;
tornar 0 ;
}
Sortida:
La següent sortida apareixerà després d'executar el codi anterior. Segons el rang dels iteradors, s'han eliminat els elements de la 3a posició a la 7a posició del vector.
Exemple-3: elimina els elements específics
Creeu un fitxer C++ amb el codi següent per eliminar els elements específics del vector mitjançant la funció erase(). S'ha declarat un vector de 7 elements enters al codi. A continuació, el bucle 'for' s'ha utilitzat per iterar els elements vectorials i eliminar aquells elements del vector que no són divisibles per 5.
//Inclou les biblioteques necessàries#inclou
#inclou
utilitzant espai de noms std ;
int principal ( )
{
//Declara un vector de dades enteres
vector < int > nombres = { 78 , 45 , 67 , 25 , 98 , 75 , 52 } ;
cout << 'Els valors del vector abans d'eliminar: \n ' ;
per ( int const & i : nombres ) {
cout << i << ' ' ;
}
cout << endl ;
//Elimineu del vector els nombres que no són divisibles per 5
per ( automàtic ell = nombres. començar ( ) ; ell ! = nombres. final ( ) ; ell ++ )
{
//Comprova que el nombre sigui divisible per 5 o no
si ( * ell % 5 ! = 0 )
{
//Elimineu l'element basat en l'iterador
nombres. esborrar ( ell -- ) ;
}
}
cout << 'Els valors del vector després d'eliminar: \n ' ;
per ( int const & i : nombres ) {
cout << i << ' ' ;
}
cout << endl ;
tornar 0 ;
}
Sortida:
La següent sortida apareixerà després d'executar el codi anterior. La sortida mostra que el vector conté només els elements divisibles per 5 i s'han eliminat altres elements.
Conclusió:
En aquest tutorial s'han mostrat diferents usos de la funció erase() per eliminar elements vectorials. El C++ té moltes altres funcions per eliminar l'element del vector, i aquestes funcions poden eliminar l'element únic alhora. Però els elements únics i múltiples de qualsevol posició del vector es poden eliminar mitjançant la funció vector erase().