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

溫馨提示×

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
彭阳县| 嘉义县| 秀山| 绥德县| 西昌市| 苍溪县| 汝城县| 乌苏市| 莱阳市| 玉溪市| 吴桥县| 兰溪市| 龙南县| 柳州市| 武汉市| 平和县| 海林市| 蒙城县| 晋江市| 怀远县| 洪泽县| 榆社县| 泰和县| 阿克| 丰都县| 九寨沟县| 中山市| 兴国县| 阿合奇县| 宜宾县| 历史| 亳州市| 德钦县| 辽宁省| 赫章县| 昌黎县| 东乡县| 宜宾市| 巧家县| 孟连| 玛纳斯县|