Sicuramente un for non ti basta (se la lista non contiene elementi univoci). Ne servono due, uno ti serve per scorrere l'elemento, l'altro scorre di nuovo tutta la lista e vede se quell'elemento è presente una sola volta. Se lo è ok, e lo metti dentro, altrimenti no.
L'errore è dovuto al fatto che lo scope dell'iteratore è relativo al for, mentre tu lo usi fuori.
Codice PHP:
int c;
string s="";
for (list<int>::iterator it=mylist.begin(); it!=mylist.end(); it++) {
c=0;
for(list<int>::iterator et=mylist.begin(); et!=mylist.end(); et++)
if(*et == *it)
c++;
if(c == 1)
s += intToString(*it) + ",";
}
cout<<s.substr(0, s.length()-1)<<endl;
Se la lista contiene già elementi univoci allora basta un for
Codice PHP:
string s="";
for (list<int>::iterator it=mylist.begin(); it!=mylist.end(); it++)
s += intToString(*it) + ",";
cout<<s.substr(0, s.length()-1)<<endl;