在C++中,std::list
的sort
函數允許你傳入一個自定義的比較函數。比較函數應該返回一個布爾值,表示兩個元素的大小關系。以下是一個簡單的例子,展示了如何為std::list
編寫一個自定義比較函數,用于按降序排序整數列表:
#include <iostream>
#include <list>
#include <functional>
// 自定義比較函數,用于降序排序
bool compareDescending(int a, int b) {
return a > b;
}
int main() {
std::list<int> myList = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
// 使用自定義比較函數對列表進行排序
myList.sort(compareDescending);
// 輸出排序后的列表
for (int num : myList) {
std::cout << num << " ";
}
return 0;
}
在這個例子中,我們定義了一個名為compareDescending
的比較函數,它接受兩個整數參數a
和b
,并返回一個布爾值。如果a
大于b
,則返回true
,表示a
應該排在b
之前;否則返回false
。
然后,在main
函數中,我們創建了一個包含整數的std::list
,并使用sort
函數對其進行排序。我們將自定義比較函數compareDescending
作為參數傳遞給sort
函數。
最后,我們遍歷排序后的列表并輸出每個元素。