STL find_if
2011-08-05 19:18
351 查看
转自:http://www.cnblogs.com/zhaozhenting/archive/2011/04/24/2026503.html
find_if定义在<algorithm>头文件中。
我们首先看下在STL中find_if是怎样实现的,然后就能写出针对各种类型的find_if函数.
//定义在STL实现代码stl_algo.h中
template <class InputIterator, class Predicate>
InputIterator find_if(InputIterator first, InputIterator last,Predicate pred)
......{
while (first != last && !pred(*first)) ++first;
return first;
}
可见STL是把find_if定义为一个函数模板,该函数模板接收三个参数,前两个类型InputItearator是输入的迭代器,在两个迭代器之间进行查找。Predicate是用于比较的断言函数。在find-if实现中,断言函数pred将迭代器当前所指对象默认当做它的参数,判断并查找。
pred是条件谓词,可以是函数,也可以是类。
类要重载运算符()带一个类型参数。
当满足pred(*inputiter)==true时,返回迭代器位置,
否则返回last。*/
find_if定义在<algorithm>头文件中。
我们首先看下在STL中find_if是怎样实现的,然后就能写出针对各种类型的find_if函数.
//定义在STL实现代码stl_algo.h中
template <class InputIterator, class Predicate>
InputIterator find_if(InputIterator first, InputIterator last,Predicate pred)
......{
while (first != last && !pred(*first)) ++first;
return first;
}
可见STL是把find_if定义为一个函数模板,该函数模板接收三个参数,前两个类型InputItearator是输入的迭代器,在两个迭代器之间进行查找。Predicate是用于比较的断言函数。在find-if实现中,断言函数pred将迭代器当前所指对象默认当做它的参数,判断并查找。
pred是条件谓词,可以是函数,也可以是类。
类要重载运算符()带一个类型参数。
当满足pred(*inputiter)==true时,返回迭代器位置,
否则返回last。*/
相关文章推荐
- STL算法find_if和find
- STL: bind1st, find_if
- c++ stl algorithm: std::find, std::find_if
- 从零开始学C++之STL(五):非变动性算法源代码分析与使用示例( for_each、min_element 、find_if、search 等)
- stl find和find_if
- STL 查找vector容器中的指定对象:find()与find_if()算法
- c++ stl algorithm: std::find, std::find_if
- stl.find_if用法总结
- STL中vector查找算法find()和find_if()深入比较
- STL 之find,find_if,find_end,find_first_of
- STL的find_if用法(包含嵌套类)
- 记录 C++ STL 中 一些好用的函数--持续更新 (for_each,transform,count_if,find_if)
- Windows STL算法学习一 find与find_if
- STL的find_if的使用
- STL(五):非变动性算法源代码分析与使用示例( for_each、min_element 、find_if、search 等)
- 关于在STL容器list中使用find_if搜索特定的节点
- 关于在STL容器list中使用find_if 函数
- 实战c++中的vector系列--vector应用之STL的find、find_if、find_end、find_first_of、find_if_not(C++11)
- 实战c++中的vector系列--vector应用之STL的find、find_if、find_end、find_first_of、find_if_not(C++11)
- STL 查找vector容器中的指定对象:find()与find_if()算法