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

溫馨提示×

C++ List Sort 對多字段如何排序

c++
小樊
108
2024-07-21 02:12:57
欄目: 編程語言

C++ 的 std::sort 函數和 lambda 表達式可以用來對多字段進行排序。

假設我們有一個存儲學生信息的結構體 Student,其中包含學生的姓名、年齡和成績:

struct Student {
    std::string name;
    int age;
    double score;
};

我們可以使用 std::sort 對這個結構體數組進行排序。假設我們需要首先按照分數降序排序,如果分數相同則按照年齡升序排序,如果年齡也相同則按照姓名字典序排序:

#include <algorithm>
#include <iostream>
#include <vector>

struct Student {
    std::string name;
    int age;
    double score;
};

int main() {
    std::vector<Student> students = {
        {"Alice", 20, 85.5},
        {"Bob", 22, 90.0},
        {"Alice", 18, 85.5},
        {"Bob", 22, 85.5}
    };

    std::sort(students.begin(), students.end(), [](const Student& a, const Student& b) {
        if (a.score != b.score) {
            return a.score > b.score;
        } else if (a.age != b.age) {
            return a.age < b.age;
        } else {
            return a.name < b.name;
        }
    });

    for (const auto& student : students) {
        std::cout << student.name << " " << student.age << " " << student.score << std::endl;
    }

    return 0;
}

在 lambda 表達式中我們定義了一個比較函數,根據分數、年齡和姓名的順序進行排序。通過 std::sort 將學生數組按照要求排序后,我們可以輸出排序后的結果。

0
民权县| 辽宁省| 集贤县| 礼泉县| 石嘴山市| 宁陕县| 新河县| 温宿县| 甘德县| 巴中市| 保靖县| 抚州市| 图们市| 沧源| 大新县| 赣榆县| 开阳县| 海门市| 小金县| 中超| 双鸭山市| 永登县| 常山县| 汉川市| 叙永县| 黑水县| 正安县| 安康市| 聂荣县| 工布江达县| 民勤县| 类乌齐县| 桂平市| 海南省| 南陵县| 鄂伦春自治旗| 宜都市| 嘉兴市| 报价| 武夷山市| 武川县|