sort排序详解
sort函数默认的排序方式是升序排序,即从小到大。1.对简单的数组排序简单来说就是sort(begin,end,cmp);sort函数中参数有三个(第三个可以省略)其中begin是排序数组的起始地址end是排序数组的结束地址(最后一位要排序元素的地址)这两个参数都是地址。#include <iostream>#include<algorithm>using...
·
sort函数默认的排序方式是升序排序,即从小到大。
1.对简单的数组排序
简单来说就是sort(begin,end,cmp);
sort函数中参数有三个(第三个可以省略)
其中begin是排序数组的起始地址
end是排序数组的结束地址(最后一位要排序元素的地址)这两个参数都是地址。
#include <iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[6]={6,2,3,1,5,10};
sort(a,a+6);
for(int i=0;i<6;i++)
cout<<a[i]<<" ";
return 0;
}
对于降序排序可以用sort(a,a+10,greater());
也可以自定义cmp函数
bool cmp(int a,int b)
{
return a>b;
}
另外相对应的升序排序用sort(a,a+10,less());
bool cmp(int a,int b)
{
return a<b;
}
2.对string型 按字典序排序
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{
string str("hello world");
sort(str.begin(),str.end());
cout<<str;
return 0;
}
3.对结构体排序
对于结构体排序其实也不难,只是需要我们自己重写cmp函数
例如要对结构体中的元素b按照升序排序。
#include<bits/stdc++.h>
using namespace std;
struct node{
int a;
int b;
};
bool cmp(node time1,node time2)
{
return time1.b<time2.b;
}
int main()
{
int n;
cin>>n;
node time[n+10];
for(int i=0;i<n;i++)
cin>>time[i].a>>time[i].b;
sort(time,time+n,cmp);
for(int i=0;i<n;i++)
{
cout<<time[i].a<<" "<<time[i].b<<endl;
}
return 0;
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)