logo

borrar vector() y borrar() en C++

Requisito previo: Vector en C++

Los vectores son lo mismo que las matrices dinámicas con la capacidad de cambiar su tamaño automáticamente cuando se inserta o elimina un elemento, y el contenedor maneja automáticamente su almacenamiento.



vector::claro()

El claro() La función se utiliza para eliminar todos los elementos del contenedor del vector, haciéndolo así de tamaño 0.

Sintaxis:

 vector_name .clear()>

Parámetros: No se pasan parámetros.



Resultado: Todos los elementos del vector se eliminan (o destruyen).

Ejemplo:

 Input: myvector= {1, 2, 3, 4, 5}; myvector.clear(); Output: myvector= {}>

C++






// C++ program to demonstrate> // Implementation of clear() function> #include> #include> using> namespace> std;> int> main()> {> >vector<>int>>mivector;> >myvector.push_back(1);> >myvector.push_back(2);> >myvector.push_back(3);> >myvector.push_back(4);> >myvector.push_back(5);> >// Vector becomes 1, 2, 3, 4, 5> >myvector.clear();> >// vector becomes empty> >// Printing the vector> >for> (>auto> it = myvector.begin(); it != myvector.end();> >++it)> >cout <<>' '> << *it;> >return> 0;> }>

>

>

Producción

 No Output>

Complejidad del tiempo: EN)
Espacio Auxiliar: O(1)
Todos los elementos son destruidos uno por uno.

Errores y excepciones

  1. Tiene una garantía de lanzamiento sin excepción.
  2. Muestra un error cuando se pasa un parámetro.

vector::borrar()

borrar() La función se utiliza para eliminar elementos de un contenedor desde la posición o rango especificado.

Sintaxis:

 vector_name . erase( position ) ; for deletion at specific position vector_name . erase( starting_position , ending_position ) ; // for deletion in range>

Parámetros:

  • Posición del elemento a eliminar en forma de iterador.
  • El rango se especifica mediante iteradores de inicio y fin.

Resultado: Los elementos se eliminan de la posición especificada del contenedor.

Ejemplo:

 Input : myvector= {1, 2, 3, 4, 5}, iterator= myvector.begin()+2 myvector.erase(iterator); Output : 1, 2, 4, 5 Input : myvector= {1, 2, 3, 4, 5, 6, 7, 8}, iterator1= myvector.begin()+3, iterator2= myvector.begin()+6 myvector.erase(iterator1, iterator2); Output : 1, 2, 3, 7, 8>

Eliminando un elemento de a posición particular

Ejemplo:

C++




// C++ program to demonstrate> // working of erase() function> #include> #include> using> namespace> std;> int> main()> {> >vector<>int>>mivector{ 1, 2, 3, 4, 5 };> >vector<>int>>::iterarlo;> >it = myvector.begin();> >myvector.erase(it);> >// Printing the Vector> >for> (>auto> it = myvector.begin(); it != myvector.end();> >++it)> >cout <<>' '> << *it;> >return> 0;> }>

>

>

Producción

diccionario de clasificación de Python
 2 3 4 5>

Complejidad del tiempo: EN)
Espacio Auxiliar: O(1)

Eliminar un elemento en particular

Para eliminar un elemento en particular según su valor, primero necesitamos saber su posición y podemos encontrarlo usando la función find().

Ejemplo:

C++




// C++ program to remove element based on its value> #include> using> namespace> std;> int> main()> {> >vector<>int>>vector = { 1, 2, 3, 3, 4, 5 };> >cout <<>'vector before deleting '> << endl;> >for> (>auto> element : vector) {> >cout << element <<>' '>;> >}> >// finding the position of the element in the vector> >int> valueToBeDeleted = 3;> >auto> it = find(vector.begin(), vector.end(),> >valueToBeDeleted);> >if> (it != vector.end()) {> >vector.erase(it);> >}> >cout << endl> ><<>'Vector after deleting valueToBeDeleted '> ><< endl;> >for> (>auto> element : vector) {> >cout << element <<>' '>;> >}> >cout << endl;> >return> 0;> }>

>

>

Producción

vector before deleting 1 2 3 3 4 5 Vector after deleting valueToBeDeleted 1 2 3 4 5>

Eliminar elementos dentro de un rango

C++




// C++ program to demonstrate> // Implementation of erase() function> #include> #include> using> namespace> std;> int> main()> {> >vector<>int>>mivector{ 1, 2, 3, 4, 5 };> >vector<>int>>::iterador it1, it2;> >it1 = myvector.begin();> >it2 = myvector.end();> >it2--;> >it2--;> >myvector.erase(it1, it2);> >// Printing the Vector> >for> (>auto> it = myvector.begin(); it != myvector.end();> >++it)> >cout <<>' '> << *it;> >return> 0;> }>

>

>

Producción

 4 5>

Complejidad del tiempo: EN)
Espacio Auxiliar: O(1)

Eliminación de elementos de pares de vectores

Ejemplo:

C++




#include> using> namespace> std;> // Function to print vector pair elements> void> print(vectorint, string>>& cosa) { cout<< '['; for (int i = 0; i cout << '{' << vec[i].first << ',' << vec[i].second << '}'; if (i cout << ', '; } cout << ']' << endl; } int main() { vectorint, string>> x = { { 1, 'manzana' }, { 2, 'plátano' }, { 3, 'cereza' }, { 4, 'Guayaba' } }; // Elimina el elemento en la posición 1 (índice 0) x.erase(x.begin()); imprimir(x); // Imprimir [{2,banana}, {3,cherry}, {4,Guava}] // Elimina los elementos en las posiciones 0 y 1 (índices 0 // y 1) x.erase(x.begin(), x.begin() + 2); imprimir(x); // Imprimir [{4,Guava}] // Borrar el vector x.clear(); imprimir(x); // No imprime nada (solo corchetes vacíos) return 0; } // Este código es una contribución de Susobhan Akhuli>

>

>

Producción

[{2,banana}, {3,cherry}, {4,Guava}] [{4,Guava}] []>

Complejidad del tiempo: EN)
Espacio Auxiliar: O(1)

Errores y excepciones

  1. No tiene garantía de lanzamiento de excepción si la posición es válida.
  2. De lo contrario, muestra un comportamiento indefinido.

Solicitud

Dada una lista de números enteros, elimine todos los elementos pares del vector e imprima el vector.

Aporte:

1, 2, 3, 4, 5, 6, 7, 8, 9>

Producción:

1 3 5 7 9>

Explicación: 2, 4, 6 y 8 que son pares y borrados del vector

Algoritmo

  1. Ejecute un bucle del tamaño del vector.
  2. Compruebe si el elemento en cada posición es divisible por 2; en caso afirmativo, elimine el elemento y disminuya el iterador.
  3. Imprime el vector final.

El siguiente programa implementa el enfoque anterior.

C++




// C++ program to demonstrate> // Application of erase() function> #include> #include> using> namespace> std;> int> main()> {> >vector<>int>>mivector{ 1, 2, 3, 4, 5, 6, 7, 8, 9 };> >for> (>auto> i = myvector.begin(); i != myvector.end();> >++i) {> >if> (*i % 2 == 0) {> >myvector.erase(i);> >i--;> >}> >}> >// Printing the vector> >for> (>auto> it = myvector.begin(); it != myvector.end();> >++it)> >cout <<>' '> << *it;> >return> 0;> }>

>

>

Producción

 1 3 5 7 9>

Complejidad del tiempo: O(N) en el peor de los casos, ya que el borrado requiere un tiempo lineal.

clear() vs erase(), ¿cuándo usar qué?

claro() elimina todos los elementos de un contenedor de vectores, lo que hace que su tamaño sea 0. Todos los elementos del vector se eliminan utilizando el claro() función.

borrar() La función, por otro lado, se utiliza para eliminar elementos específicos del contenedor o una variedad de elementos del contenedor, reduciendo así su tamaño por la cantidad de elementos eliminados.