温馨提示×

C++中sort函数的比较函数cmp如何定义

c++
小樊
121
2024-08-07 15:58:21
栏目: 编程语言

在C++中,sort函数的比较函数cmp可以通过定义一个函数对象或者Lambda表达式来实现。比较函数cmp需要返回一个bool值,用于指定排序的顺序。

下面是一个使用函数对象定义比较函数cmp的示例:

struct cmp {
    bool operator()(int a, int b) {
        return a < b;
    }
};

int main() {
    vector<int> vec = {3, 1, 4, 1, 5, 9};
    sort(vec.begin(), vec.end(), cmp());
    for (int num : vec) {
        cout << num << " ";
    }
    return 0;
}

下面是一个使用Lambda表达式定义比较函数cmp的示例:

int main() {
    vector<int> vec = {3, 1, 4, 1, 5, 9};
    sort(vec.begin(), vec.end(), [](int a, int b) {
        return a < b;
    });
    for (int num : vec) {
        cout << num << " ";
    }
    return 0;
}

在上面的示例中,比较函数cmp都是按照升序排序的规则来定义的。根据实际需要,可以修改比较函数cmp以实现不同的排序规则。

0