STL:sort()用法
来源:互联网 发布:爱上人工智能 编辑:程序博客网 时间:2024/06/15 22:50
I)Sort函数包含在头文件为#include algorithm 的c++标准库中
II)Sort函数有三个参数:
(1)第一个是要排序的数组的起始地址。
(2)第二个是结束的地址(最后一位要排序的地址)
(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。
Sort函数使用模板:
Sort(start,end,排序方法)
下面就具体使用sort()函数结合对数组里的十个数进行排序做一个说明!
例一:sort函数没有第三个参数,实现的是从小到大
#include<iostream>#include<algorithm>using namespace std;int main(){ int a[10]={9,6,3,8,5,2,7,4,1,0}; for(int i=0;i<10;i++) { cout<<a[i]<<endl; } sort(a,a+10); for(int i=0;i<10;i++) { cout<<a[i]<<endl; } return 0;}
例二:sort()实现从大到小排序
需要加入一个比较函数 complare(),此函数的实现过程是这样的
bool complare(int a,int b){ return a>b;}
程序:
#include<iostream>#include<algorithm>using namespace std;bool complare(int a,int b){ return a>b;}int main(){ int a[10]={9,6,3,8,5,2,7,4,1,0}; for(int i=0;i<10;i++) { cout<<a[i]<<" "; } sort(a,a+10,complare); for(int i=0;i<10;i++) { cout<<a[i]<<" "; } return 0;}
例三:
通过上面例一、二的方法虽然实现了从大到小和从大到小的排序,这样做还是有点麻烦,因为还需要自己编写告诉程序执行何种排序的原则的函数,c++标准库强大的功能完全可以解决这种麻烦。
sort函数的第三个参数可以用这样的语句告诉程序你所采用的排序原则
less<数据类型>()//从小到大排序
greater<数据类型>()//从大到小排序
#include<iostream>#include<algorithm>using namespace std;int main(){ int a[10]={9,6,3,8,5,2,7,4,1,0}; for(int i=0;i<10;i++) { cout<<a[i]<<" "; } //sort(a,a+10,less<int>()); sort(a,a+10,greater<int>()); for(int i=0;i<10;i++) { cout<<a[i]<<" "; } return 0;}
例四:
利用sort函数还可以实现对字符的排序,排序方法大同小异
#include<iostream>#include<algorithm>using namespace std;int main(){ char a[11]="asdfghjklk"; for(int i=0;i<10;i++) { cout<<a[i]<<" "; } //sort(a,a+10,less<char>()); sort(a,a+10,greater<char>()); for(int i=0;i<10;i++) { cout<<a[i]<<" "; } return 0;}
0 0
- STL sort用法
- STL:Sort用法
- STL sort用法
- STL的sort用法
- STL:sort()用法
- 【STL】sort函数的用法
- STL中sort函数用法
- STL sort函数的用法
- STL sort函数的用法
- STL 中sort、qsort 的用法
- STL中sort的用法举例
- stl里list的sort()用法
- STL中sort的用法举例
- STL 中sort、qsort 的用法
- 【STL】sort和copy的用法
- STL 中 sort 函数用法简介
- STL sort原理及用法详解
- STL 中 sort 函数用法简介
- bzoj1500 [NOI2005]维修数列 splay
- 根据前序遍历(或者是后序遍历)和中序遍历得到的序列可以重建二叉树
- Java多线程——线程池
- 第一周课后实践:阅读程序2,3
- 算法实现-->字符串匹配
- STL:sort()用法
- 冒泡排序
- android 多线程 之 ContentProvider
- 机器码 与 汇编指令的关系
- Leptonica在VS2010中的编译及简单使用举例
- 算法实现-->最短路径Dijksra
- 在VS2012里创建SharePoint Ribbon Custom Action
- 分层遍历二叉树(编程之美)
- 【高效算法设计——递归】 UVa 12627 Erratic Expansion