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);即可按性价比从高到低进行排序。