• STL


    STL常见函数         讲课主播:刘孟良

    1、swap 交换函数很常见不用多说

    2、sort 快速排序  sort(a,a+n,cmp)

    3、reverse    反转函数 reverse(a,a+n)

    4、min max  通俗点选小选大,很常见

    5、gcd 辗转相除求最大公约数 gcd(a,b)

    int gcd(int x,int y)

    {

    if(y==0)

      return x;

    else

      return gcd(y,x%y);

    //return y==0?x:gcd(y,x%y);

    }

    6、Lower_bound&&Upper_bound

    在有序数组中,从初到末二分查找,找一个比num大或相等&&大的数;

    在从大到小的排序数组中,重载lower_bound()和upper_bound()lower_bound( begin,end,num,greater<type>() ):在从初到末

    二分查找,找一个比num小或相等&&小的数。

    #include<iostream>
    #include<algorithm>
    using namespace std;
    int cmp(int x,int y)
    {
    return x>y;
    }

    int main()
    {
    int a[6]={1,5,3,1001,9543,47};
    sort(a,a+6);
    for(int i=0;i<=5;i++)
    cout<<a[i]<<" ";
    cout<<endl;
    cout<<lower_bound(a,a+6,5)-a<<endl;   //注意-a
    cout<<upper_bound(a,a+6,5)-a<<endl;
    cout<<lower_bound(a,a+6,5)<<endl;
    cout<<upper_bound(a,a+6,5)<<endl;
    cout<<endl;
    sort(a,a+6,cmp);
    for(int i=0;i<=5;i++)
    cout<<a[i]<<" ";
    return 0;
    }

    7、Next_permutation

    按字典序全排列

    next_permutation提供升序、prev_permutation提供降序。

    do
    {
    for(int i=1;i<=n;i++)
    cout<<a[i]<<" ";
    cout<<endl;
    }while(next_permutation(a+1,a+n));

    8、unique

    去重 

    int main()
    {
    cin>>n;
    for(int i=0;i<=n-1;i++)
    cin>>a[i];//以1 1 2 3 3 3 4 5 5 5为例。
    sort(a,a+n);//unique(a, a+n)只能把相邻的数字中的多余部分放到数组后,并不是真正的删除。且只能处理相邻元素,所以使用时应先排序
    int ans=unique(a,a+n)-a;
    /*for(int i=1;i<=n;i++)
    cin>>a[i];
    sort(a+1,a+n+1);
    int ans=unique(a+1,a+n+1)-a;*/
    cout<<ans<<endl;
    //第一次出现的是5,第二次是6
    // 返回值是一个迭代器(迭代通俗点说 叫 一个个数过去,
    //实现这样一个个数过去功能的东西,叫迭代器。),它指向的是去重后容器中
    //不重复序列的最后一个元素的下一个元素的下标。
    return 0;
    }

  • 相关阅读:
    mapreduce 函数入门 三
    *hiho 1475
    hiho 1571
    hiho 1620
    hiho 1613
    centos下nginx配置
    hiho 1617
    hiho 172周
    uva 11584
    hiho1605
  • 原文地址:https://www.cnblogs.com/zhaoxuelin/p/12374240.html
Copyright © 2020-2023  润新知