原文地址:http://www.cplusplus.com/reference/algorithm/find_if_not/
std::find_if_not
template <class InputIterator, class UnaryPredicate>
InputIterator find_if_not (InputIterator first, InputIterator last, UnaryPredicate pred);
Returns an iterator to the first element in the range [first,last)
for which pred returns false
. If no such element is found, the function returns last.
跟find_if刚好相反,返回第一个不符合要求的元素的迭代器。如果没有匹配的,则返回last.
例子:
#include <iostream> #include <vector> #include <array> #include <algorithm> using namespace std; void findifnot() { vector<int> v1{100,200,300,400,155,300}; array<int,3> ai{4,8,3}; cout<<"v1="; for(int &i:v1) cout<<i<<" "; cout<<endl; cout<<endl<<"auto it=find_if_not(v1.begin(),v1.end(),[](int i){return i%100==0;);"<<endl; auto it=find_if_not(v1.begin(),v1.end(),[](int i){return i%100==0;}); cout<<"*(it-1)="<<*(it-1)<<endl; cout<<"*it="<<*it<<endl; cout<<"*(it+1)="<<*(it+1)<<endl; cout<<"ai="; for(int &i:ai) cout<<i<<" "; cout<<endl<<"auto it2=find_first_of_not(ai.begin(),ai.end(),[](int i){return i%2==0;);"<<endl; auto it2=find_if_not(ai.begin(),ai.end(),[](int i){return i%2==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 returns false
.
If pred is true
for all elements, the function returns last.
返回第一个不符合要求的元素的迭代器。如果没有匹配的,则返回last.
Example
|
|
Output:
The first even value is 2
|
Complexity
Up to linear in the distance between first and last: Calls pred for
each element until a mismatch 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-13
于GDUT
——————————————————————————————————————————————————————————————————