# C++ Algorithm Library - find_if_not() Function

## Description

The C++ function std::algorithm::find_if_not() finds the last 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_not() function form std::algorithm header.

### C++11

```template <class InputIterator, class UnaryPredicate>
InputIterator find_if_not(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 false. 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.

## Example

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

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

using namespace std;

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

int main(void) {
vector<int> v = {2, 4, 61, 8, 10};
auto it = find_if_not(v.begin(), v.end(), unary_pred);

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

v = {2, 4, 6, 8, 10};

it = find_if_not(v.begin(), v.end(), unary_pred);

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

return 0;
}
```

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

```First odd number is 61
Only enven elements present in the sequence.
```
algorithm.htm
Advertisements