溫馨提示×

c++ list.sort自定義比較函數(shù)怎么寫

c++
小樊
90
2024-09-27 17:15:42
欄目: 編程語言

在C++中,std::listsort函數(shù)允許你傳入一個自定義的比較函數(shù)。比較函數(shù)應(yīng)該返回一個布爾值,表示兩個元素的大小關(guān)系。以下是一個簡單的例子,展示了如何為std::list編寫一個自定義比較函數(shù),用于按降序排序整數(shù)列表:

#include <iostream>
#include <list>
#include <functional>

// 自定義比較函數(shù),用于降序排序
bool compareDescending(int a, int b) {
    return a > b;
}

int main() {
    std::list<int> myList = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};

    // 使用自定義比較函數(shù)對列表進(jìn)行排序
    myList.sort(compareDescending);

    // 輸出排序后的列表
    for (int num : myList) {
        std::cout << num << " ";
    }

    return 0;
}

在這個例子中,我們定義了一個名為compareDescending的比較函數(shù),它接受兩個整數(shù)參數(shù)ab,并返回一個布爾值。如果a大于b,則返回true,表示a應(yīng)該排在b之前;否則返回false

然后,在main函數(shù)中,我們創(chuàng)建了一個包含整數(shù)的std::list,并使用sort函數(shù)對其進(jìn)行排序。我們將自定義比較函數(shù)compareDescending作為參數(shù)傳遞給sort函數(shù)。

最后,我們遍歷排序后的列表并輸出每個元素。

0