
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.
We recommend using Visual Studio 2017
find_if (STL Samples)
Visual Studio 2012
Illustrates how to use the find_if Standard Template Library (STL) function in Visual C++.
template<class InputIterator, class T, class Predicate> inline InputIterator find_if( InputIterator First, InputIterator Last, Predicate Predicate )
![]() |
---|
The class/parameter names in the prototype do not match the version in the header file. Some have been modified to improve readability. |
The find_if algorithm locates the first element in the range [First, Last) that causes the predicate to return true and returns the iterator positioned at that element, or Last if no such element was found.
// findif.cpp // compile with: /EHsc // disable warning C4786: symbol greater than 255 characters, // okay to ignore #pragma warning(disable: 4786) #include <algorithm> #include <iostream> using namespace std; // returns true if n is an odd number int IsOdd( int n) { return n % 2 ; } int main() { const int ARRAY_SIZE = 8 ; int IntArray[ARRAY_SIZE] = { 1, 2, 3, 4, 4, 5, 6, 7 } ; int *location ; // stores the position of the first // element that is an odd number int i ; // print content of IntArray cout << "IntArray { " ; for(i = 0; i < ARRAY_SIZE; i++) cout << IntArray[i] << ", " ; cout << " }" << endl ; // Find the first element in the range [first, last -1 ] // that is an odd number location = find_if(IntArray, IntArray + ARRAY_SIZE, IsOdd) ; // print the location of the first element // that is an odd number if (location != IntArray + ARRAY_SIZE) // first odd element found cout << "First odd element " << *location << " is at location " << location - IntArray << endl; else // no odd numbers in the range cout << "The sequence does not contain any odd numbers" << endl ; }
Show: