开发平台(Platform): (Ex: Win10, Linux, ...)
Win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
G++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
#include <vector>
#include <algorithm>
问题(Question):
以下程式
建立一个struct comInterval
其中Interval是额外宣告的structure
利用<algorithm>的sort做排序
我比较不明白的是
sort(intervals.begin(),intervals.end(),compInterval());
送入第三个参数的方法
请问这个方法是运算子多载吗??
有没有正确的术语呢
不知道该从何查起
喂入的资料(Input):
无
预期的正确结果(Expected Output):
无
错误结果(Wrong Output):
无
程式码(Code):(请善用置底文网页, 记得排版)
class Solution {
public:
struct compInterval {
bool operator()(const Interval &a, const Interval &b) const {
return a.start<b.start;
}
};
vector<Interval> merge(vector<Interval> &intervals) {
sort(intervals.begin(),intervals.end(),compInterval());
vector<Interval> ret;
for(int i=0; i<intervals.size(); i++) {
if(ret.empty() || ret.back().end < intervals[i].start) // no overlap
ret.push_back(intervals[i]);
else // overlap
ret.back().end = max(ret.back().end, intervals[i].end);
}
return ret;
}
};
补充说明(Supplement):