SGI

adjacent_find

Category: algorithms Component type: function

Prototype

Adjacent_find is an overloaded name; there are actually two adjacent_find functions.
template <class ForwardIterator>
ForwardIterator adjacent_find(ForwardIterator first
ForwardIterator last);

template <class ForwardIterator
class BinaryPredicate>
ForwardIterator adjacent_find(ForwardIterator first
ForwardIterator last

                              BinaryPredicate binary_pred);

Description

The first version of adjacent_find returns the first iterator i such that i and i+1 are both valid iterators in [first last) and such that *i == *(i+1). It returns last if no such iterator exists.

The second version of adjacent_find returns the first iterator i such that i and i+1 are both valid iterators in [first last) and such that binary_pred(*i *(i+1)) is true. It 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

For the first version: For the second version:

Preconditions

Complexity

Linear. If first == last then no comparison are performed; otherwise at most (last - first) - 1 comparisons.

Example

Find the first element that is greater than its successor.
int A[] = {1
2
3
4
6
5
7
8};
const int N = sizeof(A) / sizeof(int);

const int* p = adjacent_find(A
A + N
greater<int>());

cout << "Element " << p - A << " is out of order: "
     << *p << " > " << *(p + 1) << "." << endl;

Notes

See also

find mismatch equal search
[Silicon Surf] [STL Home]
Copyright © 1999 Silicon Graphics Inc. All Rights Reserved. TrademarkInformation