C++中的比较器功能意味着什么?

Ell*_*iot 3 c++

bool comp(const pair<int, int>& a, const pair<int,int>& b){
    if (v[a.first]>v[b.first]) {
        return true;
    }
    else if(v[a.first] == v[b.first] && a.second < b.second){
        return true;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

所以,我正在通过一个代码,我遇到了这个比较器函数,用于排序对的向量.现在,我对C++很新.我试着阅读关于这个比较器如何工作的其他问题?但我无法理解.为什么返回类型是bool?返回值true意味着什么?

Dan*_*ers 8

该函数comp返回true,a应该b在排序数组之前找到.

在这个实现中,当两者v[a.first]都大于时,就是这种情况v[b.first].当first成员相等且a.second小于时b.second,它也返回true.

换句话说,排序的数组将被排序以v按递减顺序传递值.对于相等的值,数组按second变量按升序排序.


use*_*738 5

在排序的情况下,它用于根据我们可以对数组进行排序的结果来比较两个值。更准确地说-

接受范围内的两个元素作为参数并返回可转换为 的值的二元函数bool。返回的值指示作为第一个参数传递的元素是否被认为在它定义的特定严格弱排序中的第二个之前。

该函数不得修改其任何参数。这可以是函数指针或函数对象(函子)