在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
函数。
最后,我们遍历排序后的列表并输出每个元素。