#include using namespace std; #include class Personaje { int edad; string nombre; public: Personaje(int e, const string & n) : edad(e), nombre(n) {} int getEdad() const {return edad; } const string & getNombre() const {return nombre; } bool operator<(const Personaje & personaje2) const { // Descomenta esto y pruebalo: // return nombre < personaje2.getNombre(); // Sustituye getNombre() por nombre y observa que funciona igual // Prueba tambien a cambiar < por > en la siguiente instruccion // y entiende lo que sucede return edad < personaje2.edad; } }; int main() { priority_queue pq; Personaje p1(15, "Vicente"); Personaje p2(10, "Ana"); Personaje p3(20, "Rodrigo"); pq.push(p1); pq.push(p2); pq.push(p3); cout << "Talla: " << pq.size() << endl; while (! pq.empty() ) { cout << "[" << pq.top().getEdad() << " - " << pq.top().getNombre() << "]" << endl; pq.pop(); } }