Salve a tutti.
Ho una classe con il nome "calciatore" e ho un file in cui ho tutti i calciatori (inseriti attraverso un altra funzione con questa disposizione)
nome cognome eta squadra gol ruolo
Ora vorrei ordinare tramite una lista tutti i calciatori in ordine decrescente di gol (creare insomma una classifica capocannoniere)
Questo è il codice che ho usato ma ho sicuramente sbagliato in qualche passaggio.
Codice PHP:
list<calciatore> lista;
calciatore kicker_temp;
//inserisco nella list tutti gli elementi
while(fread (&kicker_temp ,sizeof(calciatore),1,filepunt) && !feof(filepunt))
{ lista.push_back(kicker_temp);
}
struct SortProcess : public std::binary_function <calciatore, calciatore, bool> {
bool operator()(calciatore &a , calciatore &b){
if(a.gol<b.gol){return true;}
return false;
};
};
lista.sort(SortProcess());
cout << "Nome";
cout << "\tCognome";
cout << "\tSquadra";
cout << "\tGol";
cout << "\n" << endl;
list<calciatore>::iterator it;
for(it = lista.begin(); it < lista.end(); it++){
cout << nome;
cout << "\t" << cognome;
cout << "\t" << squadra;
cout << "\t" << gol;
cout << endl;
}
}
Non badate alle parentesi graffe il codice è estrapolato da un file che contiene piu funzioni quindi posso anche aver sbagliato a copiarlo. Il problema non dipende da parentesi o punti e virgola ma sicuramente nella sintassi della list.