
sort()排序
这个时候就有人要问了“要是我想从大到小排怎么办?”那就写排序方法撒。我们写一个函数,名称为“cmp”,我们设计成如果比较的两者前者大于后者就返回true,反之false。这样就可以实现从大到小排序。
发布日期:2021-05-18 06:43:44
浏览次数:17
分类:精选文章
本文共 1648 字,大约阅读时间需要 5 分钟。
1. 一维整数数组排序
利用sort(数组起始位置,数组终止位置的下一位,排序方法)(其中排序方法可以不写)对一维数组进行排序,如果不写排序方法,会自动默认为从小到大。我先演示一哈不写排序方法的结果
#includeusing namespace std;int main(){ //声明并定义一个无序数组 int num[] = { 1, 5, 2, 9, 11, 6, 7}; //计算出数组的长度 int length = sizeof(num)/sizeof(int); //对数组进行排序 sort(num, num + length); for(int i : num) printf("%d ", i);}
运行结果(看嘛,一眼就可以看出的从小到大)

#includeusing namespace std;bool cmp(int A, int B){ return A > B;}int main(){ //声明并定义一个无序数组 int num[] = { 1, 5, 2, 9, 11, 6, 7}; //计算出数组的长度 int length = sizeof(num)/sizeof(int); //对数组进行排序 sort(num, num + length, cmp); //输出排序后的结果 for(int i : num) printf("%d ", i);}
2. 结构体排序
我们知道了可以自己写判断谁大谁小的函数之后,我们就可以自己写这么一个函数,将其作为sort()的最后一个参数。假设这个时候我们需要对结构体进行排序,但是结构体可能带有多个参数。下面我们定义了一个带有姓名和年龄的学生类型的结构体。
//定义一个student类型,存储学生的姓名和年龄struct student{ string name; int age;};
再自己创建几个数据进行排序
#includeusing namespace std;//定义一个student类型,存储学生的姓名和年龄struct student{ string name; int age;};//利用cmp方法编写排序规定,这里我们根据年龄从小到大排序,如果年龄相同则按照姓名由大到小排序bool cmp(student A, student B){ if(A.age != B.age) //判断年龄是否相同 return A.age < B.age; return A.name > B.name;}int main(){ //创建一个装有4个学生姓名和年龄的数组 student s[4]; s[0].name = "WangLei"; s[0].age = 20; s[1].name = "XiaoWang"; s[1].age = 20; s[2].name = "LiGang"; s[2].age = 18; s[3].name = "ZhangSan"; s[3].age = 9; //对数组进行排序 sort(s, s+4, cmp); //输出排序后的结果 for(student i : s) cout<< i.name << " " << i.age << endl;}
End
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月19日 19时03分59秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
创建线程方式
2019-03-15
线程池
2019-03-15
Netty读写方法
2019-03-15
LRUCache
2019-03-15
Mac上如何强制关闭应用
2019-03-15
关于Linux系统中touch命令的说明
2019-03-15
剑指Offer03-数组中重复的数字
2019-03-15
将windows里的内容直接复制粘贴到ubuntu,提高效率
2019-03-15
将tomcat设置成window自启动服务
2019-03-15
webservice 远程服务器返回错误:(400)错误的请求
2019-03-15
[日常] PHP与Mysql测试kill慢查询并检验PDO的错误模式
2019-03-15
[PHP] try catch在日常中的使用
2019-03-15
[Linux] 进程间通信
2019-03-15
[PHP] error_reporting(0)可以屏蔽Fatal error错误
2019-03-15
[操作系统]内存连续分配管理方式
2019-03-15
C++ Primer Plus【复习笔记】-【复合类型】
2019-03-15
thinkphp 的一些重要知识点
2019-03-15
Python基础案例教程
2019-03-15
Java学习第二章——Java基本语句
2019-03-15
形状类似小于等于号的符号是啥
2019-03-15