C++中的Set數據結構是有序的,并且默認使用升序排序。如果你想要自定義排序規則,可以通過傳入自定義的比較函數來實現。
#include <iostream>
#include <set>
// 自定義比較函數
struct CustomCompare {
bool operator() (int a, int b) const {
// 根據自定義的比較規則進行排序
return a > b;
}
};
int main() {
// 使用自定義的比較函數
std::set<int, CustomCompare> mySet = {1, 5, 3, 2, 4};
// 遍歷輸出
for (int num : mySet) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
在上面的例子中,我們定義了一個自定義比較函數CustomCompare
,并將其作為第二個模板參數傳入std::set<int, CustomCompare>
中。這樣就可以實現按照自定義的排序規則對Set進行排序。
如果不提供自定義比較函數,則Set會默認使用元素的operator<
進行排序。