C++ STL标准库学习记录----搜寻算法(find()与find_if())

InputIterator find(InputIterator beg,InputIterator end,const T&value)
InputIterator find_if(InputIterator beg,InputIterator end,op)

第一形式返回区间[beg,end)中第一个“元素值=value”的元素位置。

第二形式返回区间[beg,end)中令以下一元判断式结果为true的第一个元素:op(elem)

如果没有找到匹配元素,两种形式都返回end。

下面展示find()的用法,

在vector容器中添加元素并显示,最终在该vector中搜寻元素4,程序如下

 运行结果如下,

 成功找出元素4,这里需要注意的是find()返回的是一个迭代器,所谓迭代器就是一个智能指针,所以最后一行不能直接写

cout<<it<<endl;

接下来将展示find_if()的用法,从该算法的名称中我们大致可以推断出它的含义以及使用方法(我们在上一程序的基础上进行修改)

该程序的运行结果是

注意该程序中出现的几个点:调用find()时,使用了一个以bin2nd配接器组合而成的简单仿函数,搜寻第一个大于3的元素。

bin2nd表示绑定第二个参数,那么

bind2nd(greater<int>(),3)

表示的是,大于第二个参数3的元素。

同样的也有使用bin1st配接器组合而成的仿函数,表示绑定第一个参数的意思。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值