您的位置:首页 > 编程语言 > Go语言

STL algorithm find_if

2008-06-07 13:28 253 查看
Find element in range

Returns an iterator to the first element in the range [first,last) for which applying pred to it, is true.

The behavior of this function template is equivalent to:

template<class InputIterator, class Predicate>
InputIterator find_if ( InputIterator first, InputIterator last, Predicate pred )
{
for ( ; first!=last ; first++ ) if ( pred(*first) ) break;
return first;
}

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 predicate taking an element in the range as argument, and returning a value indicating the falsehood (with false, or a zero value) or truth (true, or non-zero) of some condition applied to it. This can either be a pointer to a function or an object whose class overloads operator().

Return value

An iterator to the first element in the range for which the application of pred to it does not return false (zero).
If pred is false for all elements, the function returns last.

Example

// find_if example
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

bool IsOdd (int i) {
return ((i%2)==1);
}

int main () {
vector<int> myvector;
vector<int>::iterator it;

myvector.push_back(10);
myvector.push_back(25);
myvector.push_back(40);
myvector.push_back(55);

it = find_if (myvector.begin(), myvector.end(), IsOdd);
cout << "The first odd value is " << *it << endl;

return 0;
}

Output:

The first odd value is 25

Complexity

At most, performs as many applications of pred as the number of elements in the range [first,last).
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: