在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时,元素将按照此比较函数的顺序进行输出。