从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法

sort函数对结构体|pair对组|vector容器|map排序|二维数组的第x列 的排序 sort对 vector容器 sort对 vector对组 sort对 结构体 结构体外部规定排序 结构体内部运算符重载 map容器的排序 map的键排序 map的值排序 sort对二维数组的排序 阅读详情

sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级。本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能讲讲其用法:

1、sort入门:

使用sort需要包含algorithm头文件,完整代码如下

复制代码
#include<iostream>
#include<vector>
#include<algorithm>//貌似可以不用,但最好加上。
using namespace std;
int main()
{
    vector<int>v;
    v.push_back(13);
    v.push_back(23);
    v.push_back(03);
    v.push_back(233);
    v.push_back(113);
    sort(v.begin(),v.end());
    int i=0;
    for(i=0;i<5;i++)
    {
        cout<<v[i]<<endl;
    }
    system("pause");
    return 0;
}
复制代码

运行结果如下:

3
13
23
113
233
请按任意键继续. . .

可以看到结果是从小到大排序,但如果我需要从大到小排序呢?

2、改写comp从大到小排序。

加入comp函数后代码如下:

复制代码
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
bool comp(const int &a,const int &b)
{
    return a>b;
}
int main()
{
    vector<int>v;
    v.push_back(13);
    v.push_back(23);
    v.push_back(03);
    v.push_back(233);
    v.push_back(113);
    sort(v.begin(),v.end(),comp);
    int i=0;
    for(i=0;i<5;i++)
    {
        cout<<v[i]<<endl;
    }
    system("pause");
    return 0;
}
复制代码

运行结果:

233
113
23
13
3
请按任意键继续. . .

为什么会这样呢?比较时sort函数根据comp函数进行判断输的大小,系统默认a<b时返回真,于是从小到大排,而我的comp函数设定为a>b时返回为真,那么最终得到的排序结果也相应的从小到大变成从大到小。简单吧~~

3、对结构体排序

有了comp函数我们就可以实现对任意结构体任意对象进行排序,只需要对应修改comp函数即可实现。代码如下:

复制代码
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct ss
{
    int a,b;
};
bool comp(const ss &a,const ss &b)
{
    return a.a<b.a;
}
int main()
{
    vector<ss>v;
    ss s1,s2,s3,s4,s5;
    s1.a=4;s1.b=23;
    s2.a=1;s2.b=213;
    s3.a=2;s3.b=231;
    s4.a=5;s4.b=123;
    s5.a=3;s5.b=223;
    v.push_back(s1);
    v.push_back(s2);
    v.push_back(s3);
    v.push_back(s4);
    v.push_back(s5);
    sort(v.begin(),v.end(),comp);
    int i=0;
    for(i=0;i<5;i++)
    {
        cout<<v[i].a<<" "<<v[i].b<<endl;
    }
    system("pause");
    return 0;
}
复制代码

比如ss结构体中a代表的是索引号,b代表的是索引对应的值,那么我想按索引排序,通过改写comp函数即可实现。

结果:

1 213
2 231
3 223
4 23
5 123
C++ std::sort排序算法详解:从基础用法到自定义结构体排序实战 排序是计算机科学中的基础算法,用于将数据元素按特定顺序重新排列,其核心原理基于比较和交换操作。高效的排序算法能显著提升数据处理性能,在数据库索引、搜索算法、数据分析等场景中具有重要价值。C++标准库中的std::sort算法融合了泛型编程和迭代器抽象,通过Introsort混合排序策略确保高效稳定。本文聚焦std::sort的实战应用,深入解析如何实现降序排序、处理自定义结构体排序需求,并探讨严格弱序规则与性能优化技巧,帮助开发者掌握这一C++核心工具。 阅读详情

相关推荐

用C++ STL sort函数搞定合影排序题:从OpenJudge NOI 1.10 07题看自定义比较规则

本文以OpenJudge NOI 1.10 07题为例,深入解析C++ STL sort函数在信息学奥赛中的高级应用,特别是自定义比较规则的实现技巧。通过对比分离排序与统一比较法的优劣,详细讲解函数指针、函数对象和运算符重载三种实现方式,帮助开发者掌握复杂排序逻辑的高效处理方法,提升算法竞赛和工程实践中的排序问题解决能力。

weixin_30632883的博客 405

C++中vector的sort用法

return 0;这段代码使用自定义比较函数5 4 3 2 1。

dc爱傲雪和技术 1万+

【C++中vector容器实现局部排序的方法】——详解vector容器的sort()函数局部排序实现方法

本文介绍了vector容器实现局部排序的方法。通过使用sort()函数的重载版本,我们可以方便地对指定范围内的元素进行排序。掌握这一方法,可以使我们更好地利用vector容器进行开发。

Book_Sea的博客 3127

【C++】从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法...

sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级。本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能讲讲其用法: 1、sort入门: 使用sort需要包含algorithm头文件,完整代码如下 #include<iostream> #include<vector&g...

weixin_30908707的博客 147

C++ 中使用 vector 进行局部排序

在本文中,我们将探讨如何使用 vector 进行局部排序,并提供相应的源代码示例。然后,我们使用 sort() 函数对 vector 中索引位置 2 到 6(不包括索引 6)之间的元素进行排序。sort() 函数可对给定范围内的元素进行排序,它接受两个迭代器参数,分别指向要排序的起始位置和结束位置。如果你想保留原始向量的副本并对其进行排序,可以创建一个新的 vector 并将原始向量的内容复制到新的向量中。可以看到,在索引位置 2 到 6 的元素已经按升序进行了排序,而其他元素的顺序保持不变。

BitLordX的博客 406

iOS面试题大全(附带答案)

C语言相关面试题 1.static有什么用途? 答案:在C语言中,static主要定义全局静态变量,定义局部静态变量,定义静态函数。 static 属于静态变量,使用它修饰的变量生命周期是整个源程序。 @1.在函数体内的 static 变量的作用范围为该函数体,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值; @2.在模块内的 static 全局变量可以被模块内所有函数访问,但不能被模块外其它函数访问; @3.在模块内的 static 函数只被这一模块内的其它函数调用,这个函数的使用范围被限

IOSNF的博客 2426

【转】 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法...

sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级。本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能讲讲其用法: 1、sort入门: 使用sort需要包含algorithm头文件,完整代码如下 #include<iostream> #include<vector&g...

weixin_30430169的博客 112

Hyper-V虚拟交换机实战:外部/内部/专用网络配置全解析

本文全面解析Hyper-V虚拟交换机的三种核心类型:外部、内部和专用网络。详细阐述了外部交换机如何让虚拟机融入物理网络,内部交换机如何构建宿主机与虚拟机的私有通道,以及专用交换机如何实现虚拟机间的完全隔离。通过实战配置步骤、IP规划建议和OpenWRT软路由案例,帮助用户根据需求灵活部署,并特别强调了外部交换机配置中“允许管理操作系统共享此网络适配器”这一关键选项的重要性,以避免宿主机断网。

weixin_29218963的博客 543

转载 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法...

转载自:http://www.cnblogs.com/cj695/p/3863142.html sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级。本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能讲讲其用法: 1、sort入门: 使用sort需要包含algorithm头文件,完整代码如下 ...

weixin_34347651的博客 113

vscode使用continue插件连接LM studio的模型

本文详细介绍了如何使用VSCode的Continue插件连接LM Studio模型。主要步骤包括:在LM Studio中加载模型并设置相关参数,启动API服务,修改Continue配置文件以集成LM Studio模型,并进行测试以验证连接是否成功。通过这些步骤,用户可以将LM Studio中的预训练模型与VSCode的Continue插件无缝对接,实现高效的自然语言处理和编程辅助功能。

weixin_43590837的博客 8628

生成式引擎优化(GEO)标准化操作流程:构建高效AI生成系统的全链路指南

GEO是针对生成式AI的内容优化策略,通过提升内容在AI生成答案中的引用优先级实现品牌传播。相比传统SEO,GEO使内容直接嵌入AI答案,无需用户点击链接。核心流程包括:1)逆向拆解AI问答场景,结构化知识资产;2)生产权威内容(白皮书、专利数据)和算法适配内容(PCOE模板);3)技术实现(数据投喂、模型微调);4)331渠道分发策略;5)效果监控与动态防御。需注意采用结构化数据标记、主动提交训练数据,并避免简单复制SEO策略。2025版强调内容权威性和语义优化,通过AI原生内容工程实现高效曝光。

解锁AI流量新红利!🚀 GEO优化(生成引擎优化)助您掌控AI搜索,让AI成为您的品牌最佳代言人! 1160

sort函数的用法,自定义comp参数。

sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级。本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能讲讲其用法: 1、sort入门: 使用sort需要包含algorithm头文件,完整代码如下 #include #include #include//貌似可以不用,但最好加上。 us

京东放养的爬虫 5419

小米手机免登录开启USB安装与调试(MIUI 9-11实测,已Root可用)

本文详细介绍了小米手机免登录开启USB安装与调试的底层方案,适用于已Root的MIUI 9-11版本设备。通过修改系统配置、禁用MIUI安装器验证和强制开启USB调试等步骤,帮助开发者绕过账号限制,实现快速调试。文章包含不同MIUI版本的兼容性处理和常见问题解决方法,实测有效。

weixin_33675507的博客 288

vector对结构体排序的sort算法

转载自从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级。本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能讲讲其用法:1、sort入门:使用sort需要包含algorithm头文件,完整代码如下#include&...

张俊杰的博客 1098

Minio HTTPS证书配置实战:从申请到部署全流程

本文详细介绍了Minio HTTPS证书配置的全流程,从申请到部署,确保对象存储服务的安全性。内容包括证书类型选择、文件处理、服务配置调整及常见问题解决,帮助用户在生产环境中快速实现HTTPS加密传输,提升数据安全。

weixin_42638178的博客 431

实战指南:利用 LangGraph 的状态管理实现多轮对话的上下文隔离与持久化

本文详细介绍了如何利用LangGraph的状态管理机制,高效实现多轮对话中的上下文隔离与持久化。通过实战代码演示,从基础的消息历史管理到自定义状态扩展,再到使用SQLite进行生产级持久化,系统讲解了如何借助LangGraph的State和Checkpointer自动化处理对话记忆、用户隔离及数据存储,显著提升开发效率。

weixin_28396629的博客 488

sort 用法最简单到自定义comp

从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法 转载来自点击打开链接 sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级。本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能讲讲其用法: 1、sort入门: 使用sort需要包含algorit

小青青的技术之家 1438

把外部系统接到 SAP Build Process Automation 的两条路:前台直连与后台编排的完整范式

想把外部系统接入到你的【销售订单管理】审批流程,最稳妥的路径是:在流程里开一个,在 BTP 配好以为核心的 Destination,让前端经由approuter代理、后台通过 Cloud SDK 直连,任务处理用My Inbox或Task APIs,异步对接用。这套组合拳,既满足安全边界与运维规范,又能让前台与后台两个世界各取所需、自然衔接。SAP。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1660

Vector的sort的使用

从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法 sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级。本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能讲讲其用法: 1、sort入门: 使用sort需要包含algorithm头文件,完整代码如下

qq_37160943的博客 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

STL sort函数--对map按值排序

问题:要对以map中的数据进行按value排序 难点:map中的数据是按照key排序的,用for循环进行迭代器输出的顺序,就是按照key排序的顺序。但是按value排序就不可能了。 方案: STL中的sort函数原型: #include <algorithm> using namespace std; template <class RandomAccessIterator&gt...

DUT_LYH 8078

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

vector的sort用法

文章来源:http://www.cnblogs.com/cj695/p/3863142.html sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级。本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能讲讲其用法: 1、sort入门: 使用sort需要包含algorithm头文件,完整

memm2的专栏 5968

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

c语言中vector的用法,c中vector的用法

c中vector的用法的用法你知道吗?下面小编就跟你们详细介绍下c中vector的用法的用法,希望对你们有用。c中vector的用法的用法如下:1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout<(5)使用迭代器访问元素.vector::iterator it;fo...

weixin_31104245的博客 9317

C++常用函数sort的使用

当然可以,这就需要sort()的第三个参数comp,其类型是Compare类,C++内置的类。在用C++刷题的时候,会经常使用map数据结构,他默认是对key排序的,那能不能将其改为按照value排序呢,最简单当然可以新建一个map,将原来的kay,value,倒换顺序插入,但我们也可以利用sort函数进行排序。本菜狗也不太清楚里面具体是怎么实现的,但是comp只需要是一个bool类型的返回值的函数即可,其传入的参数是vector中元素的类型,例如,如果是简单的vector,那么该comp函数可以写成。

weixin_46227666的博客 2136
上一篇: 64位系统最大支持多少内存
下一篇: 为什么memset不能将数组元素初始化为1?(急)
PengPengBlog
博客等级 码龄10年 178粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值