sort
是C++标准库中高效且灵活的排序函数,支持对数组、容器等序列进行升序/降序排列,并能通过自定义比较函数实现复杂排序逻辑。 其核心优势在于自动选择最优排序算法(快速排序+插入排序+堆排序组合),时间复杂度稳定在,同时提供参数定制化和多场景适配能力。
-
基础用法
默认对数组升序排序:sort(arr, arr+n)
,其中arr
为数组首地址,n
为元素数量。若需降序,可传入标准库比较函数:sort(arr, arr+n, greater<int>())
。 -
自定义排序规则
通过cmp
函数实现灵活排序。例如对结构体按字段排序:cpp复制
struct Student { int score; string name; }; bool cmp(Student a, Student b) { return a.score > b.score; } // 按分数降序 sort(students, students+100, cmp);
-
Lambda表达式(C++11+)
匿名函数简化临时比较逻辑:cpp复制
sort(v.begin(), v.end(), [](int a, int b) { return a % 3 < b % 3; }); // 按模3结果升序
-
容器支持
适用于vector
等STL容器:sort(v.begin(), v.end())
,注意迭代器范围需为前闭后开区间。
提示:优先使用sort
而非手写排序算法,兼顾效率与可维护性。对稳定性要求高的场景可选用stable_sort
,但需注意其性能略低。