📜  C++ STL-list.sort()函数(1)

📅  最后修改于: 2023-12-03 15:29:50.244000             🧑  作者: Mango

C++ STL-list.sort()函数介绍

概述

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),其中ab是需要进行比较的元素,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中的元素进行排序。在使用该函数时,需要注意排序谓词的选择,以便获得所需的排序效果。