前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sort 排序

sort 排序

作者头像
Cell
发布2022-02-24 15:51:50
1.2K0
发布2022-02-24 15:51:50
举报
文章被收录于专栏:Cell的前端专栏Cell的前端专栏

sort 使用#include<algorithm>头文件,

sort(开始地址,结束地址,排序方式),其中第三参数可以没有,则默认为升序排序。

或者简单的用 less<参数类型>()表示升序

greater<参数类型>()表示降序

也可以用一个 bool 型函数,比如:

1 2 3 4 5

bool cmp(int a,int b){ return a>b;//表从大到小,即降序 }

假设自己定义了一个结构体 node

1 2 3 4 5 6 7 8 9 10 11

typedef struct node { int a; int b; double c; }note;

有一个 node 类型的数组 node arr[100],想对它进行排序:先按 a 值升序排列,如果 a 值相同,再按 b 值降序排列,如果 b 还相同,就按 c 降序排列。就可以写这样一个比较函数:

以下是代码片段:

1 2 3 4 5 6 7 8 9 10 11

bool cmp(node x,node y) { if(x.a!=y.a) return x.a<y.a; if(x.b!=y.b) return x.b>y.b; return x.c>y.c; }

sort() 函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组,数组类型可以是 int,char 等。

实例:先降序再升序

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

#include<iostream> #include<algorithm> using namespace std; typedef struct data{ int a; double b; }date; bool cmp(date a,date b){ if(a.b!=b.b) return a.b>b.b; return a.a<b.a; } int main(){ date a[3]={{5,56.5},{4,56.5},{8,85}}; sort(a,a+3,cmp); for(int i=0;i<3;i++) cout<<a[i].a<<"-"<<a[i].b<<endl; cout<<endl; return 0; }

传送门

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档