形式:
sort(first_pointer,first_pointer+n,cmp)
参数解释: 第一个参数是数组的首地址,一般写上数组名就可以,因为数组名是一个指针常量。
第二个参数相对较好理解,即首地址加上数组的长度n(代表尾地址的下一地址)。
最后一个参数是比较函数的名称(自定义函数cmp),这个比较函数可以不写,即第三个参数可以缺省,这样sort会默认按数组升序排序。
一维数组 结构体均可使用 二维数组不能用
数组从大到小排序
#include <algorithm>
#include <iostream>
using namespace std;
bool compare(int a,int b)
{
return a>b; //降序排列,如果改为return a<b,则为升序
}
int main( ){
int a[11]={2,4,5,6,1,2,334,67,8,9,0},i;
for(i=0;i<11;i++)
cout<<a[i]<<',';
sort(a,a+11,compare);
cout<<'\n';
for(i=0;i<11;i++)
cout<<a[i]<<',';
return 0;
}
结构体
#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
using namespace std;
struct student
{
int score;
int id;
}a[101];
int comp(const student &a,const student &b)
{
return a.score>b.score;
}
int main()
{
int n;
cin>>n;
for (int i=1;i<=n;++i)
cin>>a[i].id>>a[i].score;
sort(a+1,a+n+1,comp);
for(int i=1;i<=n;i++) cout<<a[i].id<<' '<<a[i].score<<endl;
return 0;
}
//输入
3
1 100
2 600
3 0
//输出
2 600
1 200
3 0