按第一个值对 C++ 中的二维数组进行排序

时间:2021-05-17 04:22:28

标签: c++ arrays sorting

我需要按子数组中第一个元素的降序对数组进行排序。例如如果我有数组

3 4
5 6
1 2

它需要根据每行的第一个元素进行排序,所以它是

1 2
3 4
5 6

目前这是我所拥有的,但正如预期的那样不起作用:

#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;

bool compare(int a[], int b[]){
    // cout << arr;
    return a[0] > b[0];
}

int main(){
    int arr[3][2] = {
        {3, 4},
        {5, 6},
        {1, 2}
    };
    sort(arr, arr + 3, compare);
    cout << arr[0][0] << " " << arr[0][1] << endl;
    cout << arr[1][0] << " " << arr[1][1] << endl;
    cout << arr[2][0] << " " << arr[2][1];
}

这个问题可能与我对指针如何在二维数组上工作的理解有关。我是一个 java main,所以整个指针概念和将函数作为参数传递的概念对我来说都是新的。想知道如何修复代码,以及如何学习/使用指针的技巧?

0 个答案:

没有答案
相关问题