std::find_if with predicate
#include <iostream> using std::cout; using std::endl; #include <algorithm> #include <vector> #include <iterator> bool greater10( int value ); int main() { int a[ 10 ] = { 10, 2, 17, 5, 16, 8, 13, 11, 20, 7 }; std::vector< int > v( a, a + 10 ); // copy of a std::ostream_iterator< int > output( cout, " " ); cout << "Vector v contains: "; std::copy( v.begin(), v.end(), output ); // display output vector // locate first occurrence of 16 in v std::vector< int >::iterator location; // locate first occurrence of value greater than 10 in v location = std::find_if( v.begin(), v.end(), greater10 ); if ( location != v.end() ) // found value greater than 10 cout << "\n\nThe first value greater than 10 is " << *location << "\nfound at location " << ( location - v.begin() ); else // value greater than 10 not found cout << "\n\nNo values greater than 10 were found"; cout << endl; return 0; } bool greater10( int value ) { return value > 10; } /* Vector v contains: 10 2 17 5 16 8 13 11 20 7 The first value greater than 10 is 17 found at location 2 */
1. | Use find_if to find first element divisible by 3 | ||
2. | Use find_if to find first element greater than 3 | ||
3. | map: find_if | ||
4. | Find all strings that are less than 4 characters long |