小工具知识网

当前位置: 首页 > 行业知识 > c++中多种类型sort()排序的用法(数组、结构体、pair、vector)

行业知识

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

上一篇:揭秘,正确读音下的忒修斯,你读对了吗?

下一篇:轻松掌握!StudioFow下载全攻略,一步步教你如何操作