invalid operator <
flyfish 2016-1-14
错误在调用std::sort函数
解决方案
如果是==判断,则返回的应该是false,返回ture就是错误的
microsoft的说明
出现错误的代码
bool CustPredicate (int elem1, int elem2 )
{
if(elem1 > elem2)
return true;
if (elem1 < elem2)
return false;
return true;
}
两个方案 任选其一
First Option:
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
}
Second Option:
bool CustPredicate (int elem1, int elem2 )
{
return elem1 > elem2;
}
Effective STL的第21条 总是让比较函数在等值情况下返回false