Grazie mille per avermi risposto.
Nel frattempo ho trovato la soluzione e la posto per correttezza, in modo che tutti possano utilizzarla
Dato il prog di prima, basta aggiungere una classe che fa la sort
template<class Object, class Comparator>
void mysort(vector<Object>& a, Comparator cmp) {
int n = a.size();
for(int i=0; i<n-1; i++)
for(int j=n-1; j>i; j--)
if(!cmp(a[j-1], a[j])) {
Object tmp = a[j-1];
a[j-1] = a[j];
a[j] = tmp;
}
}
e tante struct quanti sono i tipi di comparazioni da fare. Ad esempio se si vuole ordinare prima per id e dopo per dim si aggiunge:
struct DIMComp {
bool operator() (const Riga& a, const Riga& b) const {
return a.dim < b.dim;
}
};
struct IDComp {
bool operator() (const Riga& a, const Riga& b) const {
return a.id < b.id;
}
};
A questo punto nel mai basta chiamare
//......
mysort(righe, IDComp);
//.......
mysort(righe, DIMComp);
//......
Semplice no??
Grazie a tutti.
Ciao ciao.


Rispondi quotando