Chiar daca subprogramul e de tip void, cand ajunge la return se iese din subprogram. In functia exc, poti pune ce conditie de sortare vrei tu. Poti sorta vectoru descrescator.(return a>b).
Asa, poti sorta si un vector de structuri. ex:
struct element {int a,b;};
element v[300];
bool exc(element e1,element e2)
{
if (e1.a==e2.a) return e1.b<e2.b;
else return e1.a<e2.a;
}
si in main() scrii sort(v+1,v+n+1,exc)
asta iti va sorta elementele din v in ordinea crescatoare a lui a, iar in caz de egalitate dupa b