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
backwardcompatibility header algo.h.
Requirements on types
For the first version:
For the second version:

ForwardIterator is a model of Forward Iterator.

ForwardIterator's value type is convertible to BinaryPredicate's
first argument type and to its second argument type.
Preconditions

[first, last) is a valid range.
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
Copyright ©
1999 Silicon Graphics, Inc. All Rights Reserved.
TrademarkInformation
webmaster@www.sgi.com