#include using namespace std; #include #include // sort class Jugador { string nombre; int puntuacion; public: Jugador(const string & elNombre, int laPuntuacion) :nombre(elNombre), puntuacion{laPuntuacion} { } int getPuntuacion() const { return puntuacion; } string getNombre() const { return nombre; } bool operator<(const Jugador & otroJugador) const { return nombre < otroJugador.nombre; } }; bool mayorPuntuacion(const Jugador & p1, const Jugador & p2) { return p1.getPuntuacion() > p2.getPuntuacion(); } void mostrar(const vector & v) { cout << "["; for (Jugador jugador : v) cout << " " << jugador.getNombre() << ":" << jugador.getPuntuacion() << " " ; cout << "]" << endl; } int main() { vector v; v.push_back(Jugador("Ulises", 33)); v.push_back(Jugador("Loki", 11)); v.push_back(Jugador("Thor", 22)); cout << "Inicial: "; mostrar(v); sort(v.begin(), v.end()); // Ordena de menor a mayor nombre usando Jugador::operator< para comparar cout << "Ordenado por nombre de menor a mayor: "; mostrar(v); sort(v.begin(), v.end(), mayorPuntuacion); // Ordena de mayor a menor puntuacion usando la funcion mayorPuntuacion para comparar cout << "Ordenado por puntuacion de mayor a menor: "; mostrar(v); }