std::sort 是C++中高效排序工具,需包含和头文件,支持默认升序、降序及自定义类型排序,通过迭代器指定范围并可传入比较函数或lambda表达式实现灵活排序。

在C++中,std::sort 是一个高效且常用的排序算法,定义在 algorithm 头文件中。它能对 vector 等支持随机访问迭代器的容器进行快速排序(实际实现通常是 introsort,即快速排序、堆排序和插入排序的结合),平均时间复杂度为 O(n log n)。
包含必要的头文件
使用 std::sort 前,需要引入两个关键头文件:
#include :提供 sort 函数 #include :如果使用 vector 容器
默认升序排序
对 vector 中的基本类型(如 int、double)进行默认升序排序非常简单:
vector nums = {5, 2, 8, 1, 9};
std::sort(nums.begin(), nums.end());
// 结果:{1, 2, 5, 8, 9}
这里传入的是迭代器范围:begin() 到 end(),表示整个容器。
立即学习“C++免费学习笔记(深入)”;
自定义排序规则
若要降序排列,或对复杂类型排序,可通过第三个参数传入比较函数或 lambda 表达式。
例如,降序排序:
std::sort(nums.begin(), nums.end(), [](int a, int b) {
return a > b;
});
// 结果:{9, 8, 5, 2, 1}
也可以使用标准库提供的 std::greater:
#include
std::sort(nums.begin(), nums.end(), std::greater());
对结构体或类对象排序
当 vector 存储的是自定义类型时,需明确排序依据。例如:
struct Student {
string name;
int score;
};
vector students = {{“Alice”, 85}, {“Bob”, 90}, {“Charlie”, 70}};
std::sort(students.begin(), students.end(), [](const Student& a, const Student& b) {
return a.score > b.score; // 按分数降序
});
这样就能根据指定字段进行灵活排序。
基本上就这些。只要掌握迭代器范围和比较函数的使用,std::sort 就能应对大多数排序需求,简洁又高效。
以上就是C++如何使用std::sort算法_C++对vector等容器进行快速排序的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1486114.html
微信扫一扫
支付宝扫一扫