Tendrás que comparar las estructuras, del modo que quieras. Si no quieres andar comaprando una a una, haz un método del tipo compareTo(x). Generalmente este tipo de funciones devuelven -1, 0 0 1, según sea menor, igual o mayor.
Hay otra forma, que no es muy lógica (en este caso), pero te puede servir, y son los operadores.
class Estudiante{
//...
public:
bool operator>(const Estudiante& e){
return edad>e.getEdad();
}
};
int main(){
Estudiante a,b;
a.setEdad(15);
b.setEdad(25);
cout << (a>b);
}
Casi todos los operadores son sobrecargables. Por ejemplo, <,>,>=,<=,==,!=,>>,<<, operador coma (,), [], (), &,|,^,||,&&, ...
Algunos, como el operador (), te permite enviarle más deun parámetro.
Atu estructura Estudio le puedes añadir un par de operadores del tipo:
bool operator>(const Estudio& e){
if(anyo>e.anyo)
return true;
if(anyo<e.anyo)
return false;
if(mes>e.mes)
return true;
// etc...
}