Menú principal

jueves, 3 de septiembre de 2020

Elimina números repetidos de vector (pop_back) - C++

Se pide eliminar los números repetidos de un vector, para ello utilizaremos los algoritmos back y pop_back alojados en la librería #include <vector>. Primeramente se recorrerá el vector por delante y por detrás mediante dos bucles for. Esto nos permitirá comprobar si hay dos números iguales en dos posiciones distintas del vector. Si es así, el numero repetido se desplazará al final del vector utilizando v.back() y finalmente se eliminará utilizando v.pop_back(). A continuación se muestra la solución:
 1  #include <iostream>
 2  #include <vector>
 3  using namespace std;
 4  
 5  int main()
 6  {
 7      vector<int> v{1,2,3,3,1,4,5,2,7,8,1,5};
 8  
 9      //Mostrar vector
10      cout << "El vector original es: ";
11      for(auto x:v)
12          cout << x << "  ";
13      cout << endl;
14  
15      ///ELIMINA REPES
16      for(size_t i=0; i<v.size(); i++)
17          for(size_t j=v.size()-1; j>i; j--)
18              if(v.at(i)==v.at(j))
19              {
20                  v.at(j)=v.back(); //Colocar elemento en la ultima posicion del vector
21                  v.pop_back(); //Eliminar ultimo elemento
22              }
23  
24      //Mostrar vector modificado
25      cout << endl << "El vector modificado es: ";
26      for(auto x:v)
27          cout << x << "  ";
28  }

No hay comentarios:

Publicar un comentario