C++ Expression : invalid operator < 解决方法

转自http://blog.csdn.net/zhouworld16/article/details/6220331

确实如下文所说。

VS2008的sort()函数的用法貌似挺郁闷的。。。

前些时候写了个sort的compare函数,错误"Expression : invalid operator <",baidu+google了一下,没有找到比较明确的说法,不过找到了微软的一个网页,说得算是很清楚,不过看得不太明白。意思大概是出这个错是因为VS2005,VS2008后的sort()里,用的是所谓的“ strict weak ordering”,也就是说,如果a==b,则返回的应该是false,如果返回的是true,则会出上面的错。

网页:http://support.microsoft.com/kb/949171

以下摘抄网页中的说法:

1.strict weak ordering

举例说明如下:

· Strict: pred(X, X) is always false.

· Weak: If !pred(X, Y) && !pred(Y, X), X==Y.

· Ordering: If pred(X, Y) && pred(Y, Z), then pred(X, Z).

2.出现"Expression : invalid operator <"的写法

bool CustPredicate (int elem1, int elem2 )
{
    if(elem1 > elem2)
        return true;

if (elem1 < elem2)
        return false;
    return true;
}

3.为了解决错误,应把以上代码改写为以下两种中的任一种:

(1)

bool CustPredicate (int elem1, int elem2 )
{
    if(elem1 > elem2)
        return true;

if (elem1 < elem2)
        return false;

return false; //Should return false if both the vaules are same
}

(2)

Second Option:-
bool CustPredicate (int elem1, int elem2 )
{
    return elem1 > elem2;
}

时间: 2024-12-09 05:10:29

C++ Expression : invalid operator < 解决方法的相关文章

Bad Request (Invalid Hostname)解决方法

当在Windows Server 2003+IIS6做Web服务器,出现打开如http://paullevi.oicp.net,出现,Bad Request (Invalid Hostname) 的提示时,更改IIS6的Internet 信息服务管理器的默认网站里的属性->网站->IP地址栏,设置为(全部未分配) ,这样问题就可以解决了 Bad Request (Invalid Hostname)解决方法,布布扣,bubuko.com

VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法

VC连接MySQL的配置过程在上一篇博文中,不过当你设置好,以为万事大吉的时候,运行却出现这个错误:libmysql.lib : fatal error LNK1113: invalid machine type. 无效的机器类型,真的是很让人捉急. 发生这个错误的原因是,我在win8.1上安装的是64bit的mysql服务器,而我编译32位的VC程序,连接的是64位的libmysql.lib库,所以会产生 “无效的机器类型(invalid machine type)”的错误提示. 对于这个“e

微信Js分享朋友接口invalid signature解决方法

导致这个错误是因为签名算法错误 签名需要 noncestr timestamp(因为变量长度限制,不能直接使用毫秒时间戳,要除以1000) jsapi_ticket url 根据微信的文档说明做的话 最容易出错的地方是url 文档上对url的描述反正我是没怎么看懂~ 好了吐槽完毕,是时候上代码了 Java代码:         @RequestMapping("share2Firend")         //from.isappinstalled参数是自定义分享接口时 微信服务器带过

one or more table pointers are invalid【解决方法】

win7 64 错误是这个样子: 下载小马激活工具,找到这个位置,点击卸载,然后重启电脑,就没有了.

pentaho中Invalid byte 3 of 3-byte UTF-8 sequence的解决方法

今天在创建数据源的时候报了这么一个错 Invalid byte 3 of 3-byte UTF-8 sequence. 上网一查,说是有中文,字体不相符,可是我没有写中文,为了能继续往后进行,修改了如下文件 在start-pentaho.bat中添加了一句代码 修改前 IF "%BITS%" == "64" ( set CATALINA_OPTS=-Xms1024m -Xmx2048m -XX:MaxPermSize=256m -Dsun.rmi.dgc.clien

ruby环境sass编译中文出现Syntax error: Invalid GBK character错误解决方法

sass文件编译时候使用ruby环境,无论是界面化的koala工具还是命令行模式的都无法通过,真是令人烦恼. 容易出现中文注释时候无法编译通过,或者出现乱码,找了几天的解决方法终于解决了. 这个问题的奇葩之处在于在xp环境中没有任何问题,只是在windows7环境中才出现的这个. sass编译时候出现如下错误的解决方法: Syntax error: Invalid GBK character "\xE5" on line 8 of E:\work\sass\sass\_big_box.

Django Ubuntu:Database returned an invalid value in QuerySet.dates(). 错误的解决方法

运行Windows下创建的Django项目时,发生此错误! Database returned an invalid value in QuerySet.dates(). Are time zone definitions and pytz installed? 按提示先安装pytz 1.先安装easy_install: sudo apt-get install python-setuptools 2.进入官网,获取下载地址,使用wget命令下载: wget https://pypi.pytho

MyBatis笔记----报错:Exception in thread &quot;main&quot; org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)解决方法

报错 Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.ij34.model.UserMapper.selectarticle at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:230) at or

Type cvc-complex-type.2.4.a: Invalid content was found starting with element &#39;build&#39;.错误的解决方法

项目突然间爆出了这样的问题: Description Resource Path Location Typecvc-complex-type.2.4.a: Invalid content was found starting with element 'build'. One of '{"http://maven.apache.org/POM/4.0.0":parent, "http://maven.apache.org/POM/4.0.0":name, "