c/c++中sort函数用法
转载自博主:九江镇中https://www.cnblogs.com/jjzzx/
c++标准库里的排序函数的使用方法
I)Sort函数包含在头文件为#include<algorithm>的c++标准库中,调用标准库里的排序方法可以不必知道其内部是如何实现的,只要出现我们想要的结果即可!
II)Sort函数有三个参数:
(1)第一个是要排序的数组的起始地址。
(2)第二个是结束的地址(最后一位要排序的地址)
(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。
Sort函数使用模板:
Sort(start,end,排序方法)
下面就具体使用sort()函数结合对数组里的十个数进行排序做一个说明!
例一:sort函数没有第三个参数,实现的是从小到大

1 #include<iostream>
2
3 #include<algorithm>
4 using namespace std;
5 int main()
6 {
7 int a[10]={9,6,3,8,5,2,7,4,1,0};
8 for(int i=0;i<10;i++)
9 cout<<a[i]<<endl;
10 sort(a,a+10);
11 for(int i=0;i<10;i++)
12 cout<<a[i]<<endl;
13 return 0;
14 }

例二
通过上面的例子,会产生疑问:要实现从大到小的排序肿么办?
这就如前文所说需要在sort()函数里的第三个参数里做文章了,告诉程序我要从大到小排序!
需要加入一个比较函数 complare(),此函数的实现过程是这样的
bool complare(int a,int b)
{
return a>b;
}
这就是告诉程序要实现从大到小的排序的方法!

1 #include<iostream>
2 #include<algorithm>
3 using namespace std;
4 bool complare(int a,int b)
5 {
6 return a>b;
7 }
8 int main()
9 {
10 int a[10]={9,6,3,8,5,2,7,4,1,0};
11 for(int i=0;i<10;i++)
12 cout<<a[i]<<endl;
13 sort(a,a+10,complare);//在这里就不需要对complare函数传入参数了,
14 //这是规则
15 for(int i=0;i<10;i++)
16 cout<<a[i]<<endl;
17 return 0;
18 }

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

1 struct node
2 {
3 int a;
4 int b;
5 double c;
6 }

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

1 bool cmp(node x,node y)
2 {
3 if(x.a!=y.a) return x.a<y.a;
4 if(x.b!=y.b) return x.b>y.b;
5 return x.c>y.c;
6 }

c/c++中sort函数用法的更多相关文章
- C++ sort函数用法
参考文档:http://hi.baidu.com/posinfo/item/dc3e73584c535cc9d2e10c27 C++ sort函数用法 FROM:http://hi.baidu.com ...
- Oracle 中 decode 函数用法
Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译 ...
- php中opendir函数用法实例
这篇文章主要介绍了php中opendir函数用法,以实例形式详细讲述了opendir函数打开目录的用法及相关的注意事项,具有一定的参考借鉴价值,需要的朋友可以参考下 本文实例分析了php中opendi ...
- Perl Sort函数用法总结和使用实例
一) sort函数用法 sort LISTsort BLOCK LISTsort SUBNAME LIST sort的用法有如上3种形式.它对LIST进行排序,并返回排序后的列表.假如忽略了SUBNA ...
- php中setcookie函数用法详解(转)
php中setcookie函数用法详解: php手册中对setcookie函数讲解的不是很清楚,下面是我做的一些整理,欢迎提出意见. 语法: bool set ...
- 【313】python 中 print 函数用法总结
参考:python 中 print 函数用法总结 参考:Python print() 函数(菜鸟教程) 参考:Python 3 print 函数用法总结 目录: 字符串和数值类型 变量 格式化输出 p ...
- PHP中is_*() 函数用法
PHP中is_*() 函数用法 is_a - 如果对象属于该类或该类是此对象的父类则返回 TRUE is_array - 检测变量是否是数组 is_bool - 检测变量是否是布尔型 is_calla ...
- 1806最大数 string和sort函数用法
1.C++自带sort函数用法 sort函数有三个参数: (1)第一个是要排序的数组的起始地址 (2)第二个是结束的地址(最后一位要排序的地址) (3)第三个参数是排序的方法,可以是从大到小也可是从小 ...
- PHP中 spl_autoload_register() 函数用法
这篇文章主要介绍了PHP中spl_autoload_register()函数用法,结合实例形式分析了__autoload函数及spl_autoload_register函数的相关使用技巧,需要的朋友可 ...
随机推荐
- 【Azure 应用服务】Azure Mobile App (NodeJS) 的服务端部署在App Service for Windows中出现404 Not Found -- The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
问题描述 使用NodeJS的后端应用,开发一个Mobile App的服务端,手机端通过REST API来访问获取后端数据.在本地编译好后,通过npm start启动项目,访问效果如下: 但是,当把项目 ...
- python for循环while循环数据类型内置方法
while 条件: 条件成立之后循环执行的子代码块 每次执行完循环体子代码之后都会重新判断条件是否成立 如果成立则继续执行子代码如果不成立则退出 break用于结束本层循环 ### 一:continu ...
- 线程终止的四种方式,interrupt 方法使用的简单介绍。
一 正常结束. package com.aaa.threaddemo; /* 一 终止线程的四种方式? * 程序运行结束,线程终止. * */ public class ThreadTerminati ...
- jsp 4-15
- Spring源码-AOP部分-Spring是如何对bean实现AOP代理的
实验环境:spring-framework-5.0.2.jdk8.gradle4.3.1 历史文章 Spring源码-IOC部分-容器简介[1] Spring源码-IOC部分-容器初始化过程[2] S ...
- SnapKit
SnapKit 是 Masonry 框架的团队针对 Swift 全新开发的一套自动布局框架 官方网站:http://snapkit.io github网站:https://github.com/Sna ...
- 隐式意图&显示意图
1 隐式意图 通过指定一组动作或者数据 开启activity 2 显示意图 通过指定具体包名和类名 开启activity 总结 (1)显示意图更加安全一些 ( ...
- NSMutableDictionary基本概念
1.NSMutableDictionary 基本概念 什么是NSMutableDictionary NSMutableDictionary是NSDictionary的子类 NSDictionary是不 ...
- 使用java实现圆形运动
1 package com.neuedu.test; 2 3 import java.awt.Graphics; 4 import java.awt.Image; 5 6 import com.neu ...
- .NET 6全文检索引擎Lucene.NET 4.8简单封装
前言 因为最近在做一个检索数据的工具.最开始用的Mysql8自带的全文检索功能.但是发现这货数据量超过百万之后,检索速度直线下降. 于是想到Lucene.net.花了一晚上时间做了简单的封装.可以直接 ...