stl之algorithm库函数集合

不修改内容的序列操作:

 

 

修改内容的序列操作:

 

 

 

划分操作:

 

 

 

排序操作:

 

 

二分法查找操作:

 

 

集合操作:

 

 

堆操作:

 

最大/最小操作:

 

 

巡防算法

for_each(容器起始地址,容器结束地址,要执行的方法)

#include <iostream>  

#include <algorithm>  

#include <vector>  

using namespace std;  

  

template<class T>  

struct plus2  

{  

    void operator()(T&x)const  

    {  

        x+=2;  

    }  

      

};  

  

void printElem(int& elem)  

{  

  cout << elem << endl;  

}  

  

  

int main()  

{  

    int ia[]={0,1,2,3,4,5,6};  

    for_each(ia,ia+7,printElem);//输出  

      

    int ib[]={7,8,9,10,11,12,13};  

    vector<intiv(ib,ib+7);  

    for_each(iv.begin(),iv.end(),plus2<int>());//更改元素  

    for_each(iv.begin(),iv.end(),printElem);//输出  

      

      

    return 0;  

 

lower_bound( )与upper_bound( )用法

 

这两个函数都是求序列中第一个比键值大(区别于等于)的元素的地址

如果要求第一个比键值小的元素的地址,则需要自定义函数或者使用greater

其中start和end是序列的地址

bool cmp(const int &a,const int &b)/自定义函数,

{

        return a>b;

}

int main()

{

        upper_pound(start,end,key);

        //返回区间[start, end]中第一个>key元素的地址

        

        lower_pownd(start,end,key);

        //返回区间[start, end]中第一个>=key元素的地址

        

        lower_pound(start,end,key,cmp);

        //返回区间[start, end]中第一个 <=key元素的地址

        

        lower_bound(star,end,key,greater<int>());

        //返回区间[start, end]中第一个 <=key元素的地址

        

        upper_pound(start,end,key,cmp);

        //返回区间[start, end]中第一个<key元素的地址

        

        upper_pound(start,end,key,greater<int>());

        //返回区间[start, end]中第一个<key元素的地址

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值