Ejercicio para eliminar repetidos en un vector en c++

principiante en c++
12 de Diciembre del 2005
he conseguido una funcion pero solo m elimina los repetidos contiguos, y yo necesito eliminar los elementos repetidos dentro d cada vector.Me podeis ayudar?muchas gracias
#include <iostream>

using namespace std;

void compruebaResultado(int v[],int util_v,const int vSolucion[],int utilSolucion,const char salida[]);
void imprimeVector (const int v[], int util_v);
bool compara(const int v1[], int util_v1, const int v2[], int util_v2);

void eliminarRepetidos(int v[],int &util_v);

int main(){
int vector1[]={2,6,4,5,2,7,6}; int vector1Solucion[]={2,6,4,5,7}; int util1Solucion=5;
int vector2[]={2,2,4,5,2,7,6}; int vector2Solucion[]={2,4,5,7,6}; int util2Solucion=5;
int vector3[]={2,6,4,5,2,7,2}; int vector3Solucion[]={2,6,4,5,7}; int util3Solucion=5;
int vector4[]={1,2,3,4,3,2,1}; int vector4Solucion[]={1,2,3,4}; int util4Solucion=4;

compruebaResultado(vector1,7,vector1Solucion,util1Solucion,\"vector1\");
compruebaResultado(vector2,7,vector2Solucion,util2Solucion,\"vector2\");
compruebaResultado(vector3,7,vector3Solucion,util3Solucion,\"vector3\");
compruebaResultado(vector4,7,vector4Solucion,util4Solucion,\"vector4\");

system(\"pause\");
}


/**************************************************/
/* ESTA ES LA FUNCION QUE TIENE QUE REALIZAR */
/* Sustituya este comentario con su documentación */
/**************************************************/
void eliminarRepetidos(int v[],int &util_v ){

}
/**
@brief Comprueba si el resultado de aplicar al vector v el modulo eliminarRepetidos
produce el vector vSolucion
@param v el vector original
@param util_v: el número de elementos usados de v
@param vSolucion el vector de enteros que debería obtenerse
@param utilSolucion el número de posiciones usadas de vSolucion
@param salida un mensaje que se escribe cuando hay error en la comprobación
*/
void compruebaResultado(int v[],int util_v,const int vSolucion[],int utilSolucion,const char salida[]){
cout<<\"El vector: \";
imprimeVector(v,util_v);
eliminarRepetidos(v,util_v);
cout<<\" tras eliminarRepetidos() queda como: \";
if((util_v<0) || (util_v>1000) ){
cout<<\"----> NO ES CORRECTO para \"<< salida << \": util_v=\"<< util_v <<\" <----\\n\";
}
else{
imprimeVector(v,util_v);
cout<<endl;
if(util_v!=utilSolucion){
cout<<\"----> NO ES CORRECTO para \"<< salida << \": util_v=\"<< util_v <<\" <----\\n\";
}
else if(compara(vSolucion,utilSolucion,v,util_v))
cout <<\"CORRECTO con \" << salida <<\"\\n\";
else
cout<<\"----> NO ES CORRECTO para \"<< salida <<\" <----\\n\";
}
}

/**
@brief Imprime los elementos del vector en salida estándar separados por blancos
@param v un vector de int.
@param util_v: el número de elementos usados de v
*/
void imprimeVector (const int v[], int util_v){
for (int i=0; i<util_v; i++)
cout << v[i] <<\" \";
}

/**
@brief Compara si los vectores v1 y v2 son iguales
@param v1 un vector de int.
@param util_v1: el número de elementos usados de v1
@param v2 el otro vector de int.
@param util_v2: el número de elementos usados de v2
@return true si los vectores v1 y v2 son iguales, false en otro caso
*/
bool compara(const int v1[], int util_v1, const int v2[], int util_v2){
bool iguales = true;

for (int i=0; i< util_v1 && iguales; i++)
if (v1[i]!=v2[i])
iguales = false;

return iguales;
}

Noel Solw
12 de Diciembre del 2005
te envio un programa que realiza la reduccion del vector, ordenandolo primero :

// elimar elementos repetidos en un vestor
// escrito en borland c++ - ver 4.52

#include <iostream.h>
#include <iomanip.h>
#include <conio.h>

const int n = 10;

void show(char *msg,int *a,int dim)
{
cout << setw(15) << msg << " : ";
for(int i = 0;i < dim;i++)
cout << setw(5) << a[i];
cout << endl << endl;
} // SHOW

void swap(int &a,int &b)
{
int c = a;
a = b;
b = c;
} // SWAP

void sort(int *a,int dim)
{
for(int lim = dim;lim;lim--)
for(int i = 0;i < lim-1;i++)
if(a[i] > a[i+1])
swap(a[i],a[i+1]);
} // SORT

int reduccion(int *a,int *b,int dim)
{
int counter = 0;
sort(a,dim);
show("ordenado",a,dim);
b[counter] = a[0];
for(int i = 0;i <dim;i++)
if(b[counter] != a[i])
b[++counter] = a[i];
return counter+1;
} // REDUCCION

int main()
{
int source[n] = {1,2,19,1,2,9,3,2,8,1},
target[n],dim = n;
show("original",source,dim);
show("reducido",target,reduccion(source,target,dim));
getch();
return 0;
} // MAIN