sort函数使用方法:
sort(start,end,排序方法);
注意,end地址的数是不参加排序的,排序方法默认升序排序
若需要改变排序规则,则需写一个bool型的compare()函数:
bool compare(int a,int b){//函数返回true时,第一个参数a将排在第二个参数b的前面
return a>b;
}
如:
#include<iostream>
#include<algorithm> //头文件包含sort()函数
using namespace std;
bool compare(int a,int b)
{
return a>b;
}
int main()
{
int a[10]={3,4,5,2,1,0,7,8,9,6};
sort(a,a+10);//默认升序
for(int i=0;i<10;i++){
cout<<a[i];
}
cout<<endl;//下一行
sort(a,a+10,compare);//降序
for(int i=0;i<10;i++){
cout<<a[i];
}
cout<<endl;
return 0;
}如果需要按自己的方法排序,则只需修改compare函数即可。
如够买大米需要货比三家,Rice为大米的结构体,arr为不同店家组成的数组,weight代表大米重量,cost代表购买大米需要支付的金钱,若想按照性价比进行排序,compare函数应该改为:
struct Rice{
double weight;
double cost;
};
Rice arr[100];
bool compare(Rice x,Rice y){
return x.weight/x.cost>y.weight/y.cost;
}然后在主函数中调用时,sort(arr,arr+100,compare);即可按性价比从高到低进行排序。



京公网安备 11010502036488号