在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)行輸出。