Salve.
Sto combattendo da giorni con la funzione sort() e speravo che qualcuno poteva darmi una mano.
Sto usando questa funzione per ordinare un vettore di bitset secondo un preciso criterio.
Quindi uso la sintassi:
sort(v.begin(),v,end(),confronta)
dove confronta è una funzione bool che restituisce true o false a seconda di chi va prima.
True se il primo valore che prende la funzione va prima del secondo, False altrimenti.
Ora visto che non funziona perchè non porta a termine l'esecuzione l'ho sostituita con una funzione quadratica di ordinamento:
bool c;
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++){
c=confronta(v[i],v[j]);
if (c==false) swap(v[i],v[j]);
}
in modo da eseguire comunque l'ordinamento ma in tempo quadratico.
In questo modo ottengo l'ordinamento che voglio, quindi confronta da me usata è esatta ai fini dell'ordinamento.
Adesso però non capisco perchè la mia sort() che usa la stessa funzione non va. O meglio non va per tutti i valori che inserisco, ma solo per alcuni.
Qualcuno sa aiutarmi?