C++如何对vector进行排序?(std::sort函数示例)
发布时间 - 2026-01-07 00:00:00 点击率:次std::sort是最常用vector排序方法,默认升序,传入begin()和end()迭代器;支持降序(greater或lambda)、自定义类型(重载
用 std::sort 对 std::vector 排序最
常用也最直接,只需传入起始和结束迭代器,它默认按升序排列元素。
基础升序排序
对存储基本类型(如 int、double)的 vector,直接调用 std::sort(vec.begin(), vec.end()) 即可:
- 头文件需包含
-
vec.begin()指向首元素,vec.end()指向末尾之后的位置(左闭右开区间) - 原地排序,不额外分配空间,时间复杂度为 O(n log n)
降序排序
传入 std::greater 作为第三个参数即可实现降序:
std::sort(vec.begin(), vec.end(), std::greater()); - 也可用 lambda 表达式:
[](int a, int b) { return a > b; } - 注意:lambda 需捕获为空,且返回
true表示“a 应排在 b 前面”
对自定义类型排序
若 vector 存的是结构体或类,需明确比较逻辑:
立即学习“C++免费学习笔记(深入)”;
- 重载
operator:让类型支持默认升序 - 或提供外部比较函数/lambda,例如按成员
name字典序升序:std::sort(v.begin(), v.end(), [](const Person& a, const Person& b) { return a.name - 确保比较函数满足严格弱序(irreflexive、transitive、antisymmetric)
排序部分元素
只对子区间排序也很方便,比如只排后一半:
auto mid = vec.begin() + vec.size() / 2;std::sort(mid, vec.end());- 注意迭代器有效性:确保
mid不越界(vec.size() > 0)
# go
# c++
# 排列
# sort
# const
# auto
# 结构体
# int
# double
# Lambda
# operator
# 升序
# 自定义
# 迭代
# 降序
# 的是
# 只需
# 也很
# 第三个
# 排在
# 只对
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
黑客如何利用漏洞与弱口令入侵网站服务器?
简历没回改:利用AI润色让你的文字更专业
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
网站建设整体流程解析,建站其实很容易!
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
Laravel如何使用模型观察者?(Observer代码示例)
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
高防服务器租用如何选择配置与防御等级?
高性价比服务器租赁——企业级配置与24小时运维服务
使用spring连接及操作mongodb3.0实例
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
原生JS获取元素集合的子元素宽度实例
Laravel怎么使用Intervention Image库处理图片上传和缩放
如何用IIS7快速搭建并优化网站站点?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
Android滚轮选择时间控件使用详解
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
浅谈Javascript中的Label语句
中山网站推广排名,中山信息港登录入口?
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
Laravel集合Collection怎么用_Laravel集合常用函数详解
QQ浏览器网页版登录入口 个人中心在线进入
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
免费视频制作网站,更新又快又好的免费电影网站?
如何基于云服务器快速搭建个人网站?
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
php打包exe后无法访问网络共享_共享权限设置方法【教程】
IOS倒计时设置UIButton标题title的抖动问题
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
如何确认建站备案号应放置的具体位置?
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
Internet Explorer官网直接进入 IE浏览器在线体验版网址
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
Java遍历集合的三种方式
Android okhttputils现在进度显示实例代码
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
如何快速搭建安全的FTP站点?
音乐网站服务器如何优化API响应速度?
html文件怎么打开证书错误_https协议的html打开提示不安全【指南】
JS弹性运动实现方法分析
EditPlus中的正则表达式实战(5)
python中快速进行多个字符替换的方法小结
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?

