Originariamente inviato da shodan
Non proprio. C'è scritto che rimuove gli elementi duplicati a patto che siano adiacenti. Il che avviene se effettui prima un sort degli elementi. Nel primo codice che avevi scritto, gli elementi da rimuovere non erano adiacenti, per quello unique non faceva niente.

2)
Se il riversamento su std::list ti serve solo per quello, puoi usare std::sort() e std::unique() sul vector per rimuovere i valori duplicati.
http://www.cplusplus.com/reference/algorithm/unique/

Però se ho ben capito quello che devi fare, è preferibile usare un std::set per accumulare i valori.
http://www.cplusplus.com/reference/stl/set/
In fase di inserimento scarta automaticamente i valori doppi e in genere li ordina direttamente sempre in fase di inserimento. Per inserire valori c'è la funzione membro insert(), e usa sempre iteratori per accedere ai valori contenuti.
Per capirsi:
codice:
int comb[10]={1,3,5,1,34,1,88,31,55,90};
  std::set<int> mylist(comb,comb+numeri) ;
   cout << "mylist contains:";
  for (std::set<int>::iterator it=mylist.begin(); it!=mylist.end(); ++it)
    cout << " " << *it;
  cout << endl;


A me da questo errore...

29 provalist.cpp `set' is not a member of `std'

come ovviarvi?

grazie