c++二维数组如何用sort排序

   2025-02-07 3480
核心提示:要对C++二维数组进行排序,可以使用sort函数和自定义的比较函数来实现。下面是一个示例代码:#include iostream#include algorit

要对C++二维数组进行排序,可以使用sort函数和自定义的比较函数来实现。下面是一个示例代码:

#include <iostream>#include <algorithm>using namespace std;bool compareArrays(const int* arr1, const int* arr2, int size) {    for (int i = 0; i < size; i++) {        if (arr1[i] < arr2[i]) {            return true;        } else if (arr1[i] > arr2[i]) {            return false;        }    }    return false;}int main() {    const int rows = 3;    const int cols = 4;    int arr[rows][cols] = {{1, 4, 2, 3}, {5, 6, 7, 8}, {9, 10, 11, 12}};    sort(&arr[0][0], &arr[0][0] + rows * cols, [&](const int& a, const int& b) {        int row1 = (int)(&a - &arr[0][0]) / cols;        int col1 = (int)(&a - &arr[0][0]) % cols;        int row2 = (int)(&b - &arr[0][0]) / cols;        int col2 = (int)(&b - &arr[0][0]) % cols;        return compareArrays(arr[row1], arr[row2], cols);    });    for (int i = 0; i < rows; i++) {        for (int j = 0; j < cols; j++) {            cout << arr[i][j] << " ";        }        cout << endl;    }    return 0;}

在这个示例中,我们首先定义了一个compareArrays函数,用于比较两个一维数组的大小关系。然后,在主函数中,我们使用sort函数对二维数组进行排序。这里我们传入了一个自定义的比较函数,该函数根据行优先的顺序来比较二维数组中的元素大小。

请注意,为了在比较函数中获取元素的行和列索引,我们使用了指针运算来计算元素在二维数组中的位置。

最后,我们使用两个嵌套的循环来遍历和输出排序后的二维数组。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言