码迷,mamicode.com
首页 > 其他好文 > 详细

DevOps让金融业数字化转型更敏捷 | 分享实录

时间:2020-08-08 00:40:23      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:均衡   互联网   工作   资源   原因   之间   模糊   公司   设计   

c++sort函数的使用总结

 

sort类函数:

函数名功能描述
sort 对给定区间所有元素进行排序
stable_sort 对给定区间所有元素进行稳定排序
partial_sort 对给定区间所有元素部分排序
partial_sort_copy 对给定区间复制并排序
nth_element 找出给定区间的某个位置对应的元素
is_sorted 判断一个区间是否已经排好序
partition 使得符合某个条件的元素放在前面
stable_partition 相对稳定的使得符合某个条件的元素放在前面

 

 

 

 

 

 

 

 

 

 

 

 

需要头文件<algorithm>

语法描述:sort(begin,end,cmp),cmp参数可以没有,如果没有默认非降序排序。

 

默认情况下例子:以int类型的数据为例子

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{
    int a[5]={1,3,4,2,5};
    sort(a,a+5);
    for(int i=0;i<5;i++)
            cout<<a[i]<< ;
    return 0;
 }

 

functional提供了一堆基于模板的比较函数对象。它们是:equal_to<Type>、not_equal_to<Type>、greater<Type>、greater_equal<Type>、less<Type>、less_equal<Type>。

  • 升序:sort(begin,end,less<data-type>());
  • 降序:sort(begin,end,greater<data-type>()).
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main(){
    int a[5]={1,3,4,2,5};
    sort(a,a+5);
    for (int i = 0; i < 5; i++)
    {
        cout<<a[i]<<" ";//1 2 3 4 5
    }
    cout<<endl;
    sort(a,a+5,less<int>() );
    for (int i = 0; i < 5; i++)
    {
        cout<<a[i]<<" ";//1 2 3 4 5
    }
    cout<<endl;
    sort(a,a+5,greater<int>() );
    for (int i = 0; i < 5; i++)
    {
        cout<<a[i]<<" ";//5 4 3 2 1
    }
}

输出结果:

1 2 3 4 5
1 2 3 4 5
5 4 3 2 1

 

引用数据类型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;
 }

结果:空格dehllloorw

使用反向迭代器可以完成逆序排序

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{
    string str("hello world");
    sort(str.rbegin(),str.rend());
    cout<<str;
    return 0;
 }

结果:wroolllhde空格

字符串间的比较排序

#include<iostream>
#include<cstring >
#include<algorithm>
using namespace std;
int main()
{
    string a[4];
    for(int i=0;i<4;i++)
        getline(cin,a[i]);
    sort(a,a+4);
    for(int i=0;i<4;i++)
        cout<<a[i]<<endl;
    return 0;
}

 

以结构体为例的二级排序

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

 

多条件排序(二级):

class Solution {
    #define N 10010
    int bit[N];
public:
    int get(int x){
        int res=0;
        while (x) res+=x&1,x>>=1;
        return res;
    }
    vector<int> sortByBits(vector<int>& arr) {
        for (auto x:arr) bit[x]=get(x);
        sort(arr.begin(),arr.end(),[&](int x,int y){
            return bit[x]==bit[y]?x<y:bit[x]<bit[y];
        });
        return arr;
    }
};

参见:https://www.cnblogs.com/BlairGrowing/p/13459973.html

 

DevOps让金融业数字化转型更敏捷 | 分享实录

标签:均衡   互联网   工作   资源   原因   之间   模糊   公司   设计   

原文地址:https://blog.51cto.com/11976981/2517853

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!