原文地址:http://www.cplusplus.com/reference/algorithm/find_if/
std::find_if
template <class InputIterator, class UnaryPredicate>
InputIterator find_if (InputIterator first, InputIterator last, UnaryPredicate pred);
Returns an iterator to the first element in the range [first,last)
for which pred returns true
. If no such element is found, the function returns last.
返回范围内第一个符合要求的元素的迭代器,如果没有,则返回last.
#include <iostream> #include <vector> #include <array> #include <algorithm> using namespace std; void findif() { vector<int> v1{1,2,3,4,5,6,3,4,9,8}; array<double,2> ai{77,88}; cout<<"v1="; for(int &i:v1) cout<<i<<" "; cout<<endl; cout<<endl<<"ai="; for(double &i:ai) cout<<i<<" "; cout<<endl<<"auto it=find_if(v1.begin(),v1.end(),[](int i){return i%5==0;});"<<endl; auto it=find_if(v1.begin(),v1.end(),[](int i){return i%5==0;}); cout<<"*(it-1)="<<*(it-1)<<endl; cout<<"*it="<<*it<<endl; cout<<"*(it+1)="<<*(it+1)<<endl; cout<<endl<<"auto it2=find_first_of(v1.begin(),v1.end(),ai.begin(),ai.end());"<<endl; auto it2=find_if(ai.begin(),ai.end(),[](int i){return i%100==0;}); cout<<"*(it2-1)="<<*(it2-1)<<endl; cout<<"*it2="<<*it2<<endl; cout<<"*(it2+1)="<<*(it2+1)<<endl; }
运行截图:
The behavior of this function template is equivalent to:
|
|
Parameters
- first, last
- Input iterators to the initial and final positions in a sequence. The range used
is[first,last)
, which contains all the elements between first and last, including the element pointed by first but not the element pointed by last.
匹配的范围。 - pred
- Unary function that accepts an element in the range as argument and returns a value convertible to
bool
. The value returned indicates whether the element is considered a match in the context
of this function.
The function shall not modify its argument.
This can either be a function pointer or a function object.
一元函数。(接受一个参数的一元函数,返回一个bool值)
Return value
An iterator to the first element in the range for which pred does not return false
.
If pred is false
for all elements, the function returns last.
返回范围内第一个符合要求的元素的迭代器,如果没有,则返回last.
Example
|
|
Output:
The first odd value is 25
|
Complexity
Up to linear in the distance between first and last: Calls pred for each element until
a match is found.
Data races
Some (or all) of the objects in the range [first,last)
are accessed (once at most).
Exceptions
Throws if either pred or an operation on an iterator throws.
Note that invalid parameters cause undefined behavior.
——————————————————————————————————————————————————————————————————
//写的错误或者不好的地方请多多指导,可以在下面留言或者点击左上方邮件地址给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。
转载请注明出处:http://blog.csdn.net/qq844352155
author:天下无双
Email:coderguang@gmail.com
2014-9-12
于GDUT
——————————————————————————————————————————————————————————————————