Hola,
como harías una función que devuelva los números no repetidos,
v= 1 , 2 , 3 , 3 , 7 , 8 , 7 devuelva 1 , 2 , 3 , 7 , 8
Fíjate, como indica flony, que la función si va a devolver un int tiene que ser del tipo int, no vector. Pero en realidad no hace falta que devuelva nada, ya que los arrays se pasan por referencia y su valor en la función valen en el main. Otra cosa es el valor de la variable i de la función, que lo necesito y es el que retorno:#include<iostream>
#include<vector>
#include<cstdlib>
#include<clocale>
using namespace std;
int vector_unico (vector <int>& v,int n){
int i,j,k;
for( i = 0,k=0; k < n; i++,k++){
cout<<"Ingrese el "<<i+1<<" numero: ";
cin>>v[i];
for( j = i-1; j >=0 ; j--){
if(v[i] == v[j]){
i--;break;
}
}
}
return i;
}
int main(){
setlocale(LC_ALL, "Spanish");
int i,j,n,e;
cout<<"¿Cuántos números desea ingresar?: ";
cin>>n;
vector<int>v(n);
i=vector_unico(v,n);
for( j = 0; j < i; j++)
cout<<v[j]<<" ";
system ("pause");
return 0;
}
Saluditos!.
Aunque podría no retornar nada e imprimir desde la función, teniendo en cuenta que el vector lo tienes disponible en main para cualquier otra operación:#include<iostream>
#include<vector>
#include<cstdlib>
#include<clocale>
using namespace std;
int vector_unico (vector <int>& v,int n){
int i,j,k;
for( i = 0,k=0; k < n; i++,k++){
cout<<"Ingrese el "<<i+1<<" numero: ";
cin>>v[i];
for( j = i-1; j >=0 ; j--){
if(v[i] == v[j]){
i--;break;
}
}
}
cout<<"Tamaño del vector sin repetidos: "<<i<<endl;
for( j = 0; j < i; j++)
cout<<v[j]<<" ";
}
int main(){
setlocale(LC_ALL, "Spanish");
int i,j,n,e;
cout<<"¿Cuántos números desea ingresar?: ";
cin>>n;
vector<int>v(n);
vector_unico(v,n);
system ("pause");
return 0;
}
Y ya que estamos, ¿para qué usar una función y la librería vector?. Podríamos hacer:#include <iostream>
#include <cstdlib>
#include<clocale>
using namespace std;
int main () {
setlocale(LC_ALL, "Spanish");
int i,j,k,total;
cout<<"¿Cuántos números desea ingresar?: ";
cin>>total;
int numeros[total];
for( i = 0,k=0; i < total,k < total; i++,k++){
cout<<"Ingrese el "<<i+1<<" numero: ";
cin >> numeros[i];
for( j = i-1; j >=0 ; j--){
if(numeros[i] == numeros[j]){
i--;break;
}
}
}
for( j = 0; j < i; j++)
cout<<numeros[j]<<" ";
return 0;
}
Saluditos otra vez !.