91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c++二維數組如何用sort排序

c++
小億
429
2024-01-09 13:46:37
欄目: 編程語言

要對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函數對二維數組進行排序。這里我們傳入了一個自定義的比較函數,該函數根據行優先的順序來比較二維數組中的元素大小。

請注意,為了在比較函數中獲取元素的行和列索引,我們使用了指針運算來計算元素在二維數組中的位置。

最后,我們使用兩個嵌套的循環來遍歷和輸出排序后的二維數組。

0
红安县| 漾濞| 延安市| 正蓝旗| 长岛县| 临沧市| 苍梧县| 磐安县| 开鲁县| 古丈县| 滁州市| 墨玉县| 灌南县| 阳春市| 平谷区| 吉安市| 眉山市| 砚山县| 东城区| 中阳县| 霸州市| 铁力市| 肇源县| 锡林郭勒盟| 蓝田县| 连州市| 宿州市| 台安县| 武清区| 瓮安县| 周宁县| 黑山县| 勐海县| 阳西县| 尚义县| 金川县| 讷河市| 萨迦县| 松江区| 武鸣县| 峨山|