温馨提示×

C++ sort lambda能应用于多维数据吗

c++
小樊
101
2024-07-19 02:19:37
栏目: 编程语言

是的,C++中的sort函数可以使用lambda表达式对多维数据进行排序。例如,如果有一个二维数组,可以使用lambda表达式作为sort函数的第三个参数来指定排序规则。下面是一个示例:

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

int main() {
    std::vector<std::vector<int>> data = { {3, 2, 1}, {6, 5, 4}, {9, 8, 7} };

    // 使用lambda表达式对二维数组按第一列进行排序
    std::sort(data.begin(), data.end(), [](const std::vector<int>& a, const std::vector<int>& b) {
        return a[0] < b[0];
    });

    // 打印排序后的二维数组
    for (const std::vector<int>& row : data) {
        for (int num : row) {
            std::cout << num << " ";
        }
        std::cout << std::endl;
    }

    return 0;
}

在上面的示例中,我们使用lambda表达式来指定按二维数组的第一列进行排序。通过修改lambda表达式的逻辑,可以实现按照其他列或其他规则进行排序。因此,C++中的sort函数配合lambda表达式可以很方便地对多维数据进行排序。

0