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

溫馨提示×

C++ less如何用于自定義排序

c++
小樊
84
2024-09-14 09:30:53
欄目: 編程語言

在 C++ 中,std::less 是一個函數對象(也稱為比較器或仿函數),它提供了兩個參數的比較操作。默認情況下,std::less 用于比較兩個元素的大小,并返回一個布爾值,表示第一個元素是否小于第二個元素。

要使用 std::less 進行自定義排序,您需要重載 operator() 函數。以下是一個簡單的示例,展示了如何使用 std::less 對一個包含結構體的向量進行自定義排序:

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

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

// 自定義比較器
struct CustomLess : public std::less<Person> {
    bool operator()(const Person& a, const Person& b) const {
        // 按年齡從小到大排序
        return a.age < b.age;
    }
};

int main() {
    std::vector<Person> people = {{"Alice", 30}, {"Bob", 25}, {"Charlie", 35}};

    // 使用自定義比較器對向量進行排序
    std::sort(people.begin(), people.end(), CustomLess());

    // 輸出排序后的結果
    for (const auto& person : people) {
        std::cout<< person.name << ": "<< person.age<< std::endl;
    }

    return 0;
}

在這個示例中,我們首先定義了一個名為 Person 的結構體,然后創建了一個包含 Person 對象的向量。接下來,我們定義了一個名為 CustomLess 的自定義比較器,該比較器繼承自 std::less<Person>。在 CustomLess 中,我們重載了 operator() 函數,使其根據 Person 對象的年齡進行比較。

最后,我們使用 std::sort 函數和自定義比較器 CustomLess() 對向量進行排序。運行此程序將輸出按年齡從小到大排序的人員列表。

0
固始县| 双柏县| 江北区| 恩施市| 济源市| 哈密市| 刚察县| 洞头县| 玛多县| 北票市| 柏乡县| 泾阳县| 聊城市| 哈尔滨市| 宜兰县| 盐池县| 重庆市| 铁岭县| 巩义市| 沙洋县| 广灵县| 永城市| 施甸县| 通海县| 麻江县| 景宁| 盐山县| 汉沽区| 安新县| 容城县| 宜黄县| 彰化县| 奉节县| 锡林郭勒盟| 本溪| 襄樊市| 利川市| 繁峙县| 灵石县| 汉阴县| 响水县|