struct student {
string name;
int score;
bool operator<(const student& a) const {
return score < a.score || (score == a.score && name > a.name);
// 上面省略了 this 指针,完整表达式如下:
// this->scorescore==a.score&&this->name>a.name);
}
};
priority_queue pq;
上面的代码将小于号重载为了成员函数,当然重载为非成员函数也是可以的。
struct student {
string name;
int score;
};
bool operator<(const student& a, const student& b) {
return a.score < b.score || (a.score == b.score && a.name > b.name);
}
priority_queue pq;
构造函数等价于c++里面 { }
如果要开数组,需要加上 = 0作为初始化
struct Queue {
int num, id;
Queue(int _num = 0, int _id = 0) :
num(_num), id(_id) {}
bool operator < (const Queue &t) const {
if(num == t.num) return id < t.id;
return num < t.num;
}
}q[N];



