# C++ Algorithm Library - find_if() Function

## Description

The C++ function std::algorithm::find_if() finds the first occurrence of the element that satisfies the condition. It uses unary predicate to specify condition.

## Declaration

Following is the declaration for std::algorithm::find_if() function form std::algorithm header.

### C++98

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

## Parameters

• first − Input iterator to the initial position.

• last − Final iterator to the final position.

• pred − A unary predicate which accepts one argument and returns bool.

## Return value

returns an iterator to the first element in the range (first,last) for which unary predicate returns true. If no such element is found, the function returns last.

## Exceptions

Throws exception if either predicate or an operation on an iterator throws exception.

Please note that invalid parameters cause undefined behavior.

Linear i.e. O(n)

## Example

The following example shows the usage of std::algorithm::find_if() function.

```#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

bool unary_pre(int n) {
return ((n % 2) == 0);
}

int main(void) {
vector<int> v = {10, 2, 3, 4, 5};
auto it = find_if(v.begin(), v.end(), unary_pre);

if (it != end(v))
cout << "First even number is " << *it << endl;

v = {1};

it = find_if(v.begin(), v.end(), unary_pre);

if (it == end(v))
cout << "Only odd elements present in the sequence." << endl;

return 0;
}
```

Let us compile and run the above program, this will produce the following result −

```First even number is 10
Only odd elements present in the sequence.
```
algorithm.htm