先说原因:自定义的比较函数不能带等号,只能小于或大于
定义了一个类如下:
class Flow {
public:
int id;
int bandwidth;
int arrTime;
int startTime;
int needTime;
Flow(int i, int b, int a, int n);
};
定义了一个比较函数如下:
bool sortFlowsByArrtime(Flow x, Flow y) {
return x.arrTime <= y.arrTime;
}
然后进行排序后输出:
sort(flows.begin(),flows.end(),sortFlowsByArrtime);
for (auto var : flows) {
cout << var.id << " " << var.bandwidth << " " << var.arrTime << " " << var.needTime << endl;
}
每次都会在sort
这一行意外中断。
将return x.arrTime <= y.arrTime;
修改为return x.arrTime < y.arrTime;
,即可解决。
参考链接:https://www.coder.work/article/2746620