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:
-
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