中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c++ qsort如何處理復雜數據類型

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

C++ 的 qsort 函數是一個通用的排序函數,它要求你提供一個比較函數,以便確定元素之間的順序。對于復雜數據類型,你需要定義一個比較函數,該函數接受兩個參數并返回一個整數,表示它們之間的順序關系。

以下是一個使用 qsort 對結構體進行排序的示例:

#include <iostream>
#include <algorithm>

struct Person {
    std::string name;
    int age;
};

// 自定義比較函數
int comparePersons(const void *a, const void *b) {
    const Person *personA = static_cast<const Person *>(a);
    const Person *personB = static_cast<const Person *>(b);

    if (personA->age < personB->age) {
        return -1;
    } else if (personA->age > personB->age) {
        return 1;
    } else {
        return 0;
    }
}

int main() {
    Person people[] = {{"Alice", 30}, {"Bob", 25}, {"Charlie", 35}};
    int n = sizeof(people) / sizeof(Person);

    // 使用 qsort 對數組進行排序
    qsort(people, n, sizeof(Person), comparePersons);

    // 輸出排序后的結果
    for (int i = 0; i < n; ++i) {
        std::cout << people[i].name << ": " << people[i].age << std::endl;
    }

    return 0;
}

在這個示例中,我們定義了一個名為 Person 的結構體,包含 nameage 兩個成員。我們為 qsort 提供了一個自定義比較函數 comparePersons,該函數根據 age 成員對 Person 結構體進行比較。然后,我們使用 qsortpeople 數組進行排序,并輸出排序后的結果。

0
罗江县| 罗城| 靖远县| 上饶市| 云南省| 绥宁县| 济宁市| 棋牌| 巴塘县| 石楼县| 郴州市| 舒兰市| 淅川县| 从江县| 乌什县| 彰武县| 温州市| 舟山市| 南靖县| 景德镇市| 泰顺县| 普兰店市| 阜新市| 台南县| 吴堡县| 平顶山市| 封开县| 德化县| 伊金霍洛旗| 拜城县| 华阴市| 扎鲁特旗| 兴海县| 铁力市| 普定县| 哈尔滨市| 沿河| 潜山县| 沾化县| 墨竹工卡县| 江阴市|