find [C++ Reference]
Keywords: stl,algorithm,find
Date: 2009-10-09T00:43:15-0700

[[find]]
C++ Reference
Translations of this page?:

- en
- br-pt
- cn
- cz
- de
- es
- fr
- it
- jp
- nl
- pl
- ro
- ru
- sk
- tr
- tw

## 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

Edit this page • Old revisions
• • • Login • Index • Recent changes • RSS • cc •