querría hacer una función que devolviera un vector con solo únicos elementos, es decir sin elementos repetidos. Para ello he creído ordenar primeramente el vector ya que así se puede trabajar de forma mas sencilla. El programa me devuelve correctamente el vector con elementos no repetidos, lo único que al final del vector aparece una combinación de números que sobra, debida por algún error.
Si pudieras decirme si sería posible rectificar ese error. Gracias .
Código
#include<iostream> #include<vector> using namespace std; void ordena_seleccion(vector<int>& v) { for (int i = 0; i < v.size(); i++) { int min = i; for (int c = i + 1; c < v.size(); c++) { if (v[min] > v[c]) min = c; } int aux = v[i]; v[i] = v[min]; v[min] = aux; } } vector<int>unico(vector<int>&v){ ordena_seleccion(v); int i=0; vector<int>p; while(i<v.size()){ if(v[i]!=v[i+1]){ p.push_back(v[i]); p.push_back(v[i+1]); i=i+2;} i++; } return p; } int main(){ int n,e; cout<<"introduzca el tamaño del vector "<<endl; cin>>n; vector<int>v(n); for(int i=0;i<n;i++){ cout<<"elemento"<<endl; cin>>e; v[i]=e; } vector<int>p=unico(v); cout<<endl; cout<<"["; for(int i=0;i<v.size();i++){ cout<<p[i]<<" "; } cout<<"]"<<endl; system("pause"); return 0;}