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;