📅  最后修改于: 2023-12-03 15:29:50.244000             🧑  作者: Mango
std::list::sort
函数是C++标准模板库(STL)中的一种,它可以对双向链表std::list
中的元素进行排序。该函数的时间复杂度为O(nlogn)或O(n),具体取决于所使用的排序算法。
void sort(); // 默认以less<T>()为排序谓词进行升序排序
void sort(Compare comp); // 自定义排序谓词进行排序
comp
:排序谓词,它是一个函数对象,用来定义排序规则,默认使用less<T>()
进行升序排序。排序谓词的函数原型为bool func(const T &a, const T &b)
,其中a
和b
是需要进行比较的元素,func
返回值为true
时代表a
应该排在b
之前,否则b
应该排在a
之前。
#include <iostream>
#include <list>
using namespace std;
int main() {
list<int> numList = {2, 1, 6, 4, 3, 5};
cout << "before sorting: ";
for (auto n : numList) {
cout << n << " ";
}
cout << endl;
numList.sort(); // 默认升序排序
cout << "after sorting: ";
for (auto n : numList) {
cout << n << " ";
}
cout << endl;
numList.sort([](int a, int b) {
return a > b; // 自定义比较函数,降序排序
});
cout << "after reverse sorting: ";
for (auto n : numList) {
cout << n << " ";
}
cout << endl;
return 0;
}
before sorting: 2 1 6 4 3 5
after sorting: 1 2 3 4 5 6
after reverse sorting: 6 5 4 3 2 1
std::list::sort
函数是C++ STL库中非常实用的函数之一,它可以快速、方便地对list中的元素进行排序。在使用该函数时,需要注意排序谓词的选择,以便获得所需的排序效果。