我有一个类型为Process *的std :: list
class Process
{
// non essential stuff
// vars I want to sort by
int pid;
int burstTime;
int rBurstTime;
int priority;
}
我想重载<运算符,以便通过list :: sort()
对列表进行排序bool operator<(Process const& p) {return this.priority < p.priority}
bool operator<(Process const& p) {return this.burstTime < p.burstTime}
// etc.
由于无法确定两者之间的差异(或者我走在正确的轨道上吗?),因此上述操作似乎是不可能的。
我尝试过类似的事情
bool operator<(Process const& p, <k>) {return this.priority < p.priority}
其中k只是告诉使用哪个重载的任何数据类型/期望值,但这是不可能的,因为<重载仅采用一个参数。
希望现在您可以看到我正在尝试做的事情。我不知道有没有为此的C ++程序?我是一个相对较新的C ++程序员,所以很抱歉,对此道歉。
答案 0 :(得分:1)
通过Borgleader的评论解决:
std :: list的排序可以使用比较函数/功能,您应该改用它(std :: sort也是如此)