c++ sort函数总结

sort函数经常在算法题中被使用,这里对其用法进行总结:

一、需要使用头文件#include<algorithm>和using namespace std;  

二、语法:sort(begin,end,cmp),cmp参数可以省略,默认按升序排序。
1)begin是要排序的数组的起始地址。
  2)end是最后一位要排序的地址。 3)第三个参数是排序的方式,可以是从大到小也可是从小到大,省略时默认的排序方法是从小到大排序。

三、使用时:

1、数组的使用:

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int cmp(int a,int b) {
  if(a>b)
    return 1; //返回值为1时表示a排列在b前
  else
    return 0;
}
int main()
{
    int a[5]={1,7,2,5,10};
    sort(a,a+5);//默认升序排序,输出1,2,5,7,10
    for(int i=0;i<5;i++)
            cout<<a[i]<<' ';
    sort(a,a+5,cmp);//指定降序排序,输出10,7,5,2,1
    for(int i=0;i<5;i++)
            cout<<a[i]<<' ';

    return 0;
 }

2、string类型的使用:

#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
    string str="algorithm";
    sort(str.begin(),str.end());//结果:空格aghilmort
    cout<<str;
    return 0;
 }

 3、vector的使用:

#include <iostream>     
#include <algorithm> 
#include <vector> 
using namespace std;
int cmp(int a,int b) {
  if(a>b)
    return 1; //返回值为1时表示a排列在b前
  else
    return 0;
}
int main () {
    int a[] = {1,7,2,5,10};
    vector<int> v (a, a+5); 
    sort (v.begin(),v.begin()+3);           //(1,2,7),5,10
    sort (v.begin(),v.end(),cmp);     //10,7,5,2,1
    cout << "vector sort:";
    for (vector<int>::iterator it=v.begin(); it!=v.end(); ++it)
        cout << ' ' << *it;
    cout << '\n';
    return 0;
}

4、结构体的使用:

#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
struct s{
    int a;
    int b;
};
bool cmp(s x,s y)
{
    if(x.a==y.a)
        return x.b>y.b;
    return x.a>y.a;
}
int main()
{
    s x[5];
    for(int i=0;i<5;i++)
        cin>>x[i].a>>x[i].b;
    sort(x,x+5,cmp);
    for(int i=0;i<5;i++)
        cout<<x[i].a<<' '<<x[i].b<<endl;
    return 0;
 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值