亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c++ qsort如何處理自定義數據類型

c++
小樊
81
2024-11-25 06:13:34
欄目: 編程語言

qsort 是 C++ 標準庫中的一個通用排序函數,它要求你提供一個比較函數,以便確定元素之間的順序。對于自定義數據類型,你需要定義一個比較函數,并將其作為參數傳遞給 qsort

以下是一個使用自定義數據類型的示例,該數據類型是一個結構體,包含兩個整數成員:

#include <iostream>
#include <algorithm>

// 自定義數據類型
struct MyIntPair {
    int first;
    int second;
};

// 比較函數
int compareMyIntPairs(const void* a, const void* b) {
    MyIntPair* pairA = static_cast<MyIntPair*>(a);
    MyIntPair* pairB = static_cast<MyIntPair*>(b);

    if (pairA->first < pairB->first) {
        return -1;
    } else if (pairA->first > pairB->first) {
        return 1;
    } else {
        return pairA->second - pairB->second;
    }
}

int main() {
    // 創建一個 MyIntPair 類型的數組
    MyIntPair myArray[] = {{3, 4}, {1, 2}, {2, 1}};

    // 獲取數組長度
    int arraySize = sizeof(myArray) / sizeof(myArray[0]);

    // 使用 qsort 對數組進行排序
    qsort(myArray, arraySize, sizeof(MyIntPair), compareMyIntPairs);

    // 輸出排序后的數組
    for (int i = 0; i < arraySize; ++i) {
        std::cout << "First: " << myArray[i].first << ", Second: " << myArray[i].second << std::endl;
    }

    return 0;
}

在這個示例中,我們定義了一個名為 MyIntPair 的結構體,用于存儲一對整數。我們還定義了一個名為 compareMyIntPairs 的比較函數,該函數根據 MyIntPair 結構體的 firstsecond 成員對元素進行排序。

main 函數中,我們創建了一個 MyIntPair 類型的數組,并使用 qsort 對其進行排序。我們將比較函數 compareMyIntPairs 作為參數傳遞給 qsort,以便根據自定義邏輯對數組進行排序。最后,我們輸出排序后的數組。

0
灵寿县| 双城市| 杭锦旗| 满城县| 钟祥市| 婺源县| 建瓯市| 芜湖市| 漳浦县| 阿拉善盟| 青田县| 阳泉市| 拉孜县| 胶州市| 松原市| 桑植县| 共和县| 肥乡县| 安泽县| 庐江县| 泰州市| 重庆市| 阳江市| 灌阳县| 洛隆县| 巨鹿县| 韩城市| 札达县| 镇平县| 金溪县| 马公市| 荃湾区| 竹山县| 四平市| 外汇| 宾川县| 巫溪县| 濉溪县| 论坛| 青浦区| 施甸县|