STL中 sort 排序方法
头文件:<algorithm>
排序格式:sort (a,a+n)—— 指从a[0]到a[n-1]排序,他有两种形式
(1)默认从小到大排序
(2)加cmp自定义排序方式:sort (a,a+n,cmp),再定义一个比较函
数,通常对条件筛选进行排序一般与结构体连用。
方式:
bool cmp ( int a, int b){
return a>b;} //表示按照从大到小的顺序,也可与条件句连用
拓展:
去重:去重的方法有多种,通常可以使用计数排序的方法
另外还有STL中的unique (a,a+n) 指对有序数组a从 a[0]到a[n-1]去重
但他并不是直接去重,是有返回值的,他返回了去重后最后一个元素的指针
要赋值使用。
示例:
每个学生都有3门课的成绩:语文、数学、英语。
先按总分从高到低排序,
如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文
成绩都相同,那么规定学号小的同学 排在前面,这样,每个学生的排序是唯一确
定的。
任务:最后按排名顺序输出前五名名学生的学号和总分。
#include <iostream>
#include <algorithm>
using namespace std;
const int ding=400;
struct student { //结构体的定义
int num,chinese,math,english,total;
};
bool cmp(student a,student b){ //自定义比较函数
if (a.total!=b.total) return a.total >b.total;
if (a.chinese!=b.chinese) return a.chinese > b.chinese;
return a.num<b.num; //比较条件的建立
}
int main()
{student a[ding]; //结构体的声明
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].chinese>>a[i].math>>a[i].english;
a[i].total=a[i].chinese+a[i].math+a[i].english;
a[i].num=i;
}
sort (a+1,a+1+n,cmp); //函数的使用
for(int i=1;i<=5;i++){cout<<a[i].num<<" "<<a[i].total<<endl;
}
return 0;
}
STL中 sort 排序方法相关推荐
- STL中sort排序的简单使用
测试int的sort功能 #include <iostream> #include <string> #include <algorithm> #include & ...
- python中的sort排序加换行_python中sort()排序的方法
python中sort()排序的方法 发布时间:2020-09-01 10:57:52 来源:亿速云 阅读:110 作者:小新 这篇文章主要介绍了python中sort()排序的方法,具有一定借鉴价值 ...
- C++中sort()排序函数应用
** C++中sort()排序函数应用 ** sort(first_pointer,first_pointer+n,cmp) 该函数可给数组,或者链表list.向量排序. 实现原理:sort并不是简单 ...
- Array数组对象sort排序方法
数组sort排序方法 Array数组对象中的sort方法是根据数组中数组元素的字符编码进行排序的,所以对数字的排序,会跟想要的升序结果不一样 通过设置sort()方法的参数可以按照自定义的排序方式对数 ...
- STL中的nth_element()方法的使用
STL中的nth_element()方法的使用 通过调用nth_element(start, start+n, end) 方法可以使第n大元素处于第n位置(从0开始,其位置是下标为 n的元素),并且比 ...
- python数组排序sort_详解python中sort排序使用
1.前言 昨天一学妹问我一个关于python的问题,当时在外忙碌,没时间细看.今天看一下,咋一看我还真的不知道这个问题,bookinfo.sort(reverse=True ,key=lambda x ...
- c语言中怎么排序,c语言中的排序方法.doc
c语言中的排序方法 排序技术 所谓排序,就是要整理的文件中的记录,使之按关键字第增(或第减)的次序排列起来. 常用交换类排序 冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线 ...
- 关于sort( )排序方法的兼容性问题
测试人员昨天测出360浏览器下有个页面显示不全,在别的浏览器下没有问题,从而猜想是兼容性问题,回想该页面改动过的地方只是加了一个 sort 排序方法,查资料得知 sort在不同浏览器下的结果和写法是不 ...
- python中的排序方法都有哪些_Python中的排序方法sort(),sorted(),argsort()等
Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列. 1)排序基础 简单的升序排序是非常容易的.只需要调用sorte ...
最新文章
- 8.Map集合(HashMapTreeMap)
- LA3403 天平难题
- 基于深度学习的图像分类Image classification with deep learning常用模型
- Java IO流操作规律
- RabbitMq入门以及使用教程
- ImportError: cannot import name HTTPSHandler
- Connect 2016 白话脱口秀将在B站直播,我们的口号是quot; 微软大法好quot;
- BP神经网络分类实战项目(深度学习笔记)原创!基础篇||PCA降维、反向传播公式、梯度下降、标准化、倾斜样本处理、独热编码、Adam优化算法、权值初始化、F1-Score、ROC、模型可视化
- 关于ActiveMQ序列化对象爆“Forbidden class xxx! ...”问题的解决
- IntelliJ中可能的东西在Eclipse中是不可能的?
- Java游戏编程——愤怒的小鸟(一)
- tp php websocket教程,tp6 websocket方法详解
- 今日更新京东皮卡丘1.7修复链接和预约抢购下单商品,手机端茅台抢购软同步上架(可配备群控使用)
- 实战:用 C 语言实现操作系统
- 苹果自研Apple M1芯片对机器学习意味着什么?
- 关于垂直线和水平线判断问题
- OpenCV学习案例之车牌识别EasyPR
- 29.递归三元表达式生成式匿名函数
- 重学c语言 新开导言
- 学习人工智能宝藏网站(Papers with Code)
热门文章
- mtk tuning tools
- oracle insert replace into,讨人喜欢的 MySQL replace into 用法(insert into 的增强版)
- Qt浅谈之三十六仿360设置中心
- 苹果app充值限制解除_苹果手机无需越狱解除150M流量下载限制
- 支付宝小程序 | 上传图片组件(添加默认样式以及自定义上传样式)
- 超全jquery网页特效素材网站整理
- 【转】Buff机制及其实际运用
- UI设计教程分享:Ps合成炫酷机械姬
- 通过JShellLink获取快捷方式(.lnk格式文件)的真实路径
- 开放问题,创业型公司如何控制进度?(欢迎评论)