用STL sort重写Compare时发生了一个错误,以前没有注意到的。
我第一次写的:
struct MyCmp{
bool operator()(const Interval a, const Interval b){
return (a.start <= b.start);
}
}mycmp;
在运行是得到了Runtime Error。后来把 <= 换成 < 就通过了。
简单测试了一下:
Input:
(50,60)
(50,61)
(50,62)
(50,63)
如果用 (a.start <= b.start)
排序后为:
(50,63)
(50,62)
(50,61)
(50,60)
若果用(a.start < b.start)
排序后为:
(50,60)
(50,61)
(50,62)
(50,63)
即原数据不需要做更改