溫馨提示×

c++遍歷set時如何排序

c++
小樊
117
2024-06-24 16:16:38
欄目: 編程語言

在C++中,set是按照元素的比較函數(shù)進(jìn)行排序的。如果要遍歷set并按照特定的順序排序,可以使用自定義的比較函數(shù)來實現(xiàn)。

以下是一個示例代碼,演示如何定義一個自定義的比較函數(shù),并在遍歷set時按照該比較函數(shù)的順序排序:

#include <iostream>
#include <set>

using namespace std;

// 定義一個自定義的比較函數(shù),用于按照元素的大小進(jìn)行排序
struct Compare {
    bool operator() (int a, int b) {
        return a > b; // 從大到小排序
    }
};

int main() {
    set<int, Compare> mySet;

    mySet.insert(5);
    mySet.insert(2);
    mySet.insert(8);
    mySet.insert(1);

    // 遍歷set并按照比較函數(shù)的順序排序輸出
    for (auto it = mySet.begin(); it != mySet.end(); ++it) {
        cout << *it << " ";
    }
    cout << endl;

    return 0;
}

在上面的示例中,定義了一個名為Compare的結(jié)構(gòu)體,其中重載了operator()函數(shù),實現(xiàn)了從大到小排序。然后在聲明set時,指定了該自定義的比較函數(shù)。在遍歷set時,元素將按照此比較函數(shù)的順序進(jìn)行輸出。

0