Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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
)
Remarks
Note
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.
Example
// 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 ;
}
Output
IntArray { 1, 2, 3, 4, 4, 5, 6, 7, }
First odd element 1 is at location 0
Requirements
Header: <algorithm>