今天好不容易用这个方法写一个排序算法,结果(服务器过几十分钟宕机)莫名奇妙报错:invalid operator< ?
刚开始我还傻呵呵的以为代码逻辑里哪个地方写错了,可折腾了N久,加了无数个判断,可还是几十分钟宕机一次。
错误原因很简单:
[&](class A,class B)
{
compare(A,B)>0 //A>B
compare(B,A)>0 //B>A ,看到没,问题就出在这里
解决方法:
if(compare(A,B)*compare(B,A)>0)
{
return false;
}else
{
return compare(A,B)>0;
}
};