温馨提示×

C++ sort lambda如何配合其他STL使用

c++
小樊
92
2024-07-19 02:17:35
栏目: 编程语言

在C++中,可以使用lambda表达式来配合其他STL算法实现排序操作。下面以使用std::sort函数对std::vector进行排序为例进行说明。

假设有一个std::vector<int>类型的容器vec,要对其中的元素进行排序,可以使用以下代码:

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> vec = {4, 2, 7, 1, 5};

    // 使用lambda表达式来定义排序规则
    std::sort(vec.begin(), vec.end(), [](int a, int b) {
        return a < b;
    });

    // 输出排序后的结果
    for (int num : vec) {
        std::cout << num << " ";
    }

    return 0;
}

在上面的代码中,lambda表达式[](int a, int b) { return a < b; }定义了排序规则,表示按照升序排序。lambda表达式中的两个参数ab表示std::sort函数传入的两个元素,返回值为bool类型,表示排序的顺序。

通过lambda表达式,可以根据需要定义不同的排序规则,例如按照降序排序、按照绝对值大小排序等。lambda表达式可以很方便地和其他STL算法一起使用,提供更灵活的排序功能。

0