sort函数
来源:互联网 发布:人工智能豆瓣 编辑:程序博客网 时间:2024/05/22 06:15
STL中的sort函数包含于文件”algorithm“中,sort有两个重载函数,因此有两种调用方式:sort(begin, end)和sort(begin, end, compare),默认的排序结果是从小到大。
1. 对于基本数据类型我们可以直接使用第一种调用方式
#include <algorithm>#include <iostream>using namespace std;int main(){int ar[10];for (int i=0; i<10; ++i){ar[i] = 10 - i;}cout<<"原序列:";for (int i=0; i<10; ++i){cout<<ar[i]<<" ";}cout<<endl;sort(ar, ar+10);for (int i=0; i<10; ++i){cout<<ar[i]<<" ";}return 1;}
2. 当我们想要的排序结果是从达到小时需要定义比较函数
#include <algorithm>#include <iostream>using namespace std;bool comp(int a, int b){return a>b;};int main(){int ar[10];for (int i=0; i<10; ++i){ar[i] = i;}cout<<"原序列:";for (int i=0; i<10; ++i){cout<<ar[i]<<" ";}cout<<endl;sort(ar, ar+10, comp);for (int i=0; i<10; ++i){cout<<ar[i]<<" ";}return 1;}
3. 对于复杂的数据结构我们有两种处理策略
3.1 类似2中所示定义比较函数
例子略
3.2 在数据结构中定义比较函数
#include <algorithm>#include <iostream>using namespace std;struct node{int a;int b;bool operator<(struct node n1){return b < n1.b;}};int _tmain(int argc, _TCHAR* argv[]){struct node *no = new struct node[10];for (int i=0; i<10; ++i){no[i].a = i;no[i].b = 10 - i;}for (int i=0; i<10; ++i){cout<<no[i].a<<" "<<no[i].b<<endl;}cout<<"///////////////////////////"<<endl;sort(no, no+10);for (int i=0; i<10; ++i){cout<<no[i].a<<" "<<no[i].b<<endl;}return 0;}同样道理将struct node中的return b < n1.b 改为 return b > n1.b排序结果将是从大到小。
0 0
- sort函数
- sort函数
- sort函数
- sort函数
- sort函数
- sort 函数
- sort函数
- sort函数
- sort()函数
- sort函数
- sort函数
- sort函数
- sort函数
- sort函数
- sort函数
- sort函数
- sort函数
- sort函数
- 图的广度优先遍历算法
- java中static的作用
- 选择排序算法中的交换数值问题
- c++ primer阅读笔记-15章-2
- 微软面试100题之20题:输入一个表示整数的字符串,把该字符串转换成整数并输出
- sort函数
- 点连通分量
- 不得不说的故事:STL内存管理
- 安装sql2005,没有SQL Server management studio的原因分析及解决方案
- 怎样校验MD5码及sha1码数值(适用于Windows及Linux平台)
- 手把手教你使用TI MSP430 LaunchPad
- codeblocks搭建opencv环境完美教程
- 总结一下自己的实训经历吧
- unicode与utf-8互转