Expression : invalid operator <

来源:互联网 发布:广东软件著作权登记 编辑:程序博客网 时间:2024/05/13 23:45
今天用sort来对vector进行排序,然后排序函数如下:
static bool comp(const Interval a, const Interval b){return a.start > b.start ? 1 : (a.start < b.start ? -1 : 0);}

结果一直提示错误。

后来查了下,大概是出这个错是因为VS2005,VS2008后的sort()里,用的是所谓的“ strict weak ordering”,也就是说,如果a==b,则返回的应该是false,如果返回的是true,则会出上面的错。

修改成下面形式就OK了。

static bool comp(const Interval a, const Interval b){return a.start > b.start ? 1 : 0;}


0 0
原创粉丝点击