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配接器组合而成的仿函数,表示绑定第一个参数的意思。
文章介绍了C++中find和find_if两种算法的使用,用于在容器中查找特定元素或满足条件的元素。find返回等于给定值的第一个元素的迭代器,而find_if则根据传入的谓词寻找满足条件的元素。示例代码展示了如何在vector中应用这些算法,包括使用bind2nd创建仿函数来寻找大于特定值的元素。

被折叠的 条评论
为什么被折叠?



