关闭

Expression : invalid operator <

108人阅读 评论(0) 收藏 举报
分类:
今天用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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:45353次
    • 积分:2535
    • 等级:
    • 排名:第14965名
    • 原创:215篇
    • 转载:20篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论