# find_if

Category: algorithms | Component type: function

### Prototype

    template<class InputIterator, class Predicate>
    InputIterator find_if(InputIterator first, InputIterator last,
                          Predicate pred);

### Description

Returns the first iterator `i` in the range `[first, last)` such that `pred(*i)` is true. Returns `last` if no such iterator exists.

### Definition

Defined in the standard header algorithm, and in the nonstandard backward-compatibility header algo.h.

### Requirements on types

- Predicate is a model of Predicate.
- InputIterator is a model of InputIterator.
- The value type of InputIterator is convertible to the argument type of Predicate.

### Preconditions

- `[first, last)` is a valid range.
- For each iterator `i` in the range `[first, last)`, *i is in the domain of Predicate.

### Complexity

Linear: at most `last - first` applications of `Pred`.

### Example

    list<int> L;
    L.push_back(-3);
    L.push_back(0);
    L.push_back(3);
    L.push_back(-2);

    list<int>::iterator result = find_if(L.begin(), L.end(),
                                         bind2nd(greater<int>(), 0));
    assert(result == L.end() || *result > 0);

### Notes

### See also

find.

Copyright © 1999 Silicon Graphics, Inc. All Rights Reserved. TrademarkInformation