find

Syntax:

    #include <algorithm>
    input_iterator find( input_iterator start, input_iterator end, const TYPE& val );

The find() algorithm looks for an element matching val between start and end. If an element matching val is found, the return value is an iterator that points to that element. Otherwise, the return value is an iterator that points to end.

For example, the following code uses find to search a vector of integers for the number 3:

   int num_to_find = 3;
 
   vector<int> v1;
   for( int i = 0; i < 10; i++ ) {
     v1.push_back(i);
   }
 
   vector<int>::iterator result;
   result = find( v1.begin(), v1.end(), num_to_find );
 
   if( result == v1.end() ) {
     cout << "Did not find any element matching " << num_to_find << endl;
   }
 
   else {
     cout << "Found a matching element: " << *result << endl;
   }

In the next example, shown below, the find function is used on an array of integers. This example shows how the C++ STL algorithms can be used to manipulate arrays and pointers in the same manner that they manipulate containers and iterators:

   int nums[] = { 3, 1, 4, 1, 5, 9 };
 
   int num_to_find = 5;
   int start = 0;
   int end = 2;
   int* result = find( nums + start, nums + end, num_to_find );
 
   if( result == nums + end ) {
     cout << "Did not find any number matching " << num_to_find << endl;
   } else {
     cout << "Found a matching number: " << *result << endl;
   }

Related Topics: adjacent_find, find_end, find_first_of, find_if, mismatch, search