温馨提示×

c++遍历set时如何排序

c++
小樊
83
2024-06-24 16:16:38
栏目: 编程语言

在C++中,set是按照元素的比较函数进行排序的。如果要遍历set并按照特定的顺序排序,可以使用自定义的比较函数来实现。

以下是一个示例代码,演示如何定义一个自定义的比较函数,并在遍历set时按照该比较函数的顺序排序:

#include <iostream>
#include <set>

using namespace std;

// 定义一个自定义的比较函数,用于按照元素的大小进行排序
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并按照比较函数的顺序排序输出
    for (auto it = mySet.begin(); it != mySet.end(); ++it) {
        cout << *it << " ";
    }
    cout << endl;

    return 0;
}

在上面的示例中,定义了一个名为Compare的结构体,其中重载了operator()函数,实现了从大到小排序。然后在声明set时,指定了该自定义的比较函数。在遍历set时,元素将按照此比较函数的顺序进行输出。

0