C++如何使用std::sort算法_C++对vector等容器进行快速排序


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

c++如何使用std::sort算法_c++对vector等容器进行快速排序

在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(),表示整个容器。

自定义排序规则

若要降序排列,或对复杂类型排序,可通过第三个参数传入比较函数或 lambda 表达式。

例如,降序排序:

NoCode NoCode

美团推出的零代码应用生成平台

NoCode 180 查看详情 NoCode 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等容器进行快速排序的详细内容,更多请关注其它相关文章!


# 工具  # c++  # 排序算法  # 排列  # 标准库  # 升序  # 自定义  # go  # 降序  # 舟山高端网站优化  # 鞍山医疗网站建设公司  # 广州设备seo公司招聘  # 合肥建设网站图片大全  # 河北网站建设团队  # 镇坪抖音短视频seo  # 亚马逊关键词销售排名  # 网站推广单位是什么工作  # 何为  # 就能  # 如何使用  # 迭代  # 头文件  # 都是  # 的是  # seo 排名系统  # 网站推广策划原则有哪些 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 国际经济与贸易就业方向解析  《sketchbook》选中部分图案移动方法  cad加载的线型看不见怎么办_cad线型不可见问题解决方法  t3出行如何使用微信支付  《律学法考》查看学习数据方法  可米酷漫画在线阅读入口_ 可米酷漫画官网直达链接  mysql中如何配置字符集和排序规则_mysql字符集排序配置  Dash应用中自定义HTML页面标题与网站图标(F*icon)的实用指南  济南公交卡手机充值指南  J*a中导出MySQL表为SQL脚本的两种方法  《大学搜题酱》官网地址登录  如何取消数字签名  Microsoft Edge网页字体太淡看不清怎么办_Microsoft Edge字体渲染优化技巧  win11如何开启单声道音频 Win11为听障用户合并左右声道【辅助】  《单词速记宝》设置学习计划方法  《百果园》充值余额方法  火狐浏览器如何刷新修复浏览器 火狐浏览器“重置Firefox”功能详解  J*aScript与HTML元素交互:图片点击事件与链接处理教程  跨语言测试实践:使用Python Selenium测试现有J*a Web项目  NumPy 高性能技巧:基于多列条件查找最近邻行索引的向量化实现  tiktok国际版入口_tiktok官网网页版链接  酷狗音乐多音轨设置教程  苹果自助维修计划支持哪些设备机型  手机自动关机是怎么回事?如何修复?手机异常关机的原因排查与修复技巧  J*aScript桌面应用_Electron多进程架构实战  C++二维数组动态分配方法_C++指针与数组内存布局  邮政快递寄件查询入口 邮政快递收件查询入口  大众点评了却看不到是怎么回事  微信客户端怎么查看二维码_微信客户端个人二维码查看方法  《东方航空》添加乘机人方法  c++类和对象到底是什么_c++面向对象编程基础  邦丰播放器频道搜索设置  如何在CSS中设置背景图像:一个全面指南  LocoySpider如何批量采集电商商品_LocoySpider电商采集的模板应用  《深林》冬季章节图文攻略  《洛克王国:世界》国家队搭配攻略  Coolpad5890 ROM刷机包  百度网盘网页入口链接分享 百度网盘官网入口网页登录  火柴人战争网页版在线玩  HTML中多图片上传与预览:解决ID冲突的专业指南  我的世界游戏平台入口 我的世界官方官网直达链接  苹果17 Pro如何启用分屏浏览_iPhone 17 Pro分屏浏览设置步骤  XPath动态元素定位:如何精准选择文本内容变化的元素  为什么XML解析器对大小写敏感? 理解XML规范中的大小写规则与最佳实践  《豆瓣》私信用户方法  CSS如何在页面中引入重置样式_使用Normalize.css或Reset.css统一浏览器默认样式  c++如何使用std::thread::join和detach_c++线程生命周期管理  网页版网易云音乐入口_网易云音乐在线官网登录  汽水音乐在线入口 汽水音乐网页端官方页面快速打开  如何修改Windows截图的默认保存位置_告别C盘让桌面更整洁【教程】 

 2025-11-25

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.