使用类对象的优先级队列

我正在尝试将学生类安排为优先队列。 我重载了operator <函数,该函数比较Student类的两个对象的学生ID,但是我的代码不起作用。 你能给我什么建议吗?

#include <iostream>
#include <queue>
#include <vector>
#include <string>
using namespace std;

class Student {
public:
    string name;
    int id;

    Student(string str, int n) {
        this->name = str;
        this->id = n;
    };

};


bool operator<(const Student& a, const Student& b) {
    return a.id < b.id;
}


int main() {
    priority_queue<Student> pq;
    pq.push(Student("Miria", 1));
    pq.push(Student("Ken", 2));
    pq.push(Student("Bob", 3));

    while (!pq.empty()) {
        cout << pq.top() << endl;
        pq.pop();
    }


    return 0;
}