Standard C++ Library Copyright 1998, Rogue Wave Software, Inc. NAME find_if - Finds an occurrence of a value in a sequence that satis- fies a specified predicate. SYNOPSIS #include <algorithm> template <class InputIterator, class Predicate> InputIterator find_if(InputIterator first, InputIterator last, Predicate pred); DESCRIPTION The find_if algorithm allows you to search for the first element in a sequence that satisfies a particular condition. The sequence is defined by iterators first and last, while the condition is defined by the third argument: a predicate function that returns a boolean value. find_if returns the first iterator i in the range [first, last) for which the following condition holds: pred(*i) == true. If no such iterator is found, find_if returns last. COMPLEXITY find_if performs at most last-first applications of the corresponding predicate. EXAMPLE / // find.cpp // #include <vector> #include <algorithm> #include <functional> #include <iostream> using namespace std; int main() { typedef vector<int>::iterator iterator; int d1[10] = {0,1,2,2,3,4,2,2,6,7}; // Set up a vector vector<int> v1(d1,d1 + 10); // Try find iterator it1 = find(v1.begin(),v1.end(),3); // it1 = v1.begin() + 4; // Try find_if iterator it2 = find_if(v1.begin(),v1.end(),bind1st(equal_to<int>(),3)); // it2 = v1.begin() + 4 // Try both adjacent_find variants iterator it3 = adjacent_find(v1.begin(),v1.end()); // it3 = v1.begin() +2 iterator it4 = adjacent_find(v1.begin(),v1.end(),equal_to<int>()); // v4 = v1.begin() + 2 // Output results cout << *it1 << " " << *it2 << " " << *it3 << " " << *it4 << endl; return 0; } Program Output 3 3 2 2 WARNINGS If your compiler does not support default template parame- ters, then you always need to supply the Allocator template argument. For instance, you have to write: vector<int, allocator<int> > instead of: vector<int> If your compiler does not support namespaces, then you do not need the using declaration for std. SEE ALSO adjacent_find, Algorithms, find,_find_end, find_first_of
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |