行业知识
c++中多种类型sort()排序的用法(数组、结构体、pair、vector)
2026-11-05 19:06:26
来源:互联网转载
c++中多种类型sort排序的用法
- 一、对数组排序
- 1、默认排序
- 2、自定义排序
- 二、对结构体进行排序
- 三、对pair进行排序
- 1、默认排序
- 2、自定义排序
- 四、对vector进行排序
- 1、默认排序
- 2、去重排序
- 3、���定义排序
一、对数组排序
1、默认排序
默认从小到大进行排序
#include #define maxsize 100using namespace std;int main(){ int n; cin>>n; int a[maxsize]; for(int i=0;i>a[i]; //默认从小到大排序 sort(a,a+n); for(int i=0;i //对数组进行从大到小排序 return xy;}int main(){ int n; cinn; int a[maxsize]; for(int i=0;i>a[i]; //默认从小到大排序 sort(a,a+n,cmp); for(int i=0;i int data; int number[3];}cnt[maxsize];bool cmp(Node x,Node y)//传入的参数是结构体的类型{ //对结构体中的number的和进行从大到小排序 int sum1=x.number[0]+x.number[1]+x.number[2]; int sum2=y.number[0]+y.number[1]+y.number[2]; return sum1sum2;}int main(){ int n; cinn; for(int i=0;i>cnt[i].number[1]>>cnt[i].number[2]; //自定义排序,传入定义的函数 sort(cnt,cnt+n,cmp); return 0;}三、对pair进行排序
1、默认排序
默认对first从小到大排序,当first相同时对second进行从小到大排序
#include #define maxsize 100using namespace std;pair num[maxsize];int main(){ int n; cin>>n; for(int i=0;i>num[i].first>>num[i].second; //默认排序 sort(num,num+n); for(int i=0;i //对first进行从大到小排列 return x.firsty.first;}int main(){ int n; cinn; for(int i=0;i int n; cinn; int num; for(int i=0;i cinnum; vec.push_back(num); } //默认排序,从小到大 sort(vec.begin(),vec.end()); for(auto it=vec.begin();it !=vec.end();it++) { cout int n; cinn; int num; for(int i=0;i cinnum; vec.push_back(num); } //去除重复元素 sort(vec.begin(),vec.end()); auto last=unique(vec.begin(),vec.end()); vec.erase(last,vec.end()); for(auto it=vec.begin();it !=vec.end();it++) { cout return ab;}int main(){ int n; cinn; int num; for(int i=0;i cinnum; vec.push_back(num); } //自定义排序,从大到小 sort(vec.begin(),vec.end(),cmp); for(auto it=vec.begin();it !=vec.end();it++) { cout