在C++中使用STL的比较函数中的"<="符号而不是"<"符号有什么区别?

Dhr*_*ick 0 c++ stl

我必须在sort()函数中实现第三个参数cmp,以便按降序排序整数数组 .

问题是这个定义不能正常工作,

bool cmp (int a, int b)
{
    if(a<b)
        return false;
    else
        return true;
}
Run Code Online (Sandbox Code Playgroud)

但是,这样做

bool cmp (int a, int b)
{
    if(a<=b)
        return false;
    else
        return true;
}
Run Code Online (Sandbox Code Playgroud)

在main()函数中,我使用

sort(Arr,Arr+n,cmp);
Run Code Online (Sandbox Code Playgroud)

请注意,我声称第一个代码无法正常工作,因为当我使用第二个时,我接受了Codechef问题的解决方案,而不是第一个.

小智 6

如果两个值相等,则STL比较函数必须返回false.