template<class FwdIt>
FwdIt adjacent_find(FwdIt first, FwdIt last);
template<class FwdIt, class Pred>
FwdIt adjacent_find(FwdIt first, FwdIt last, Pred pr);
The first template function determines the lowest N in the range [0, last - first) for which N + 1 != last -
first and the predicate *(first + N) == *(first + N + 1) is true. It then returns first + N. If no such
value exists, the function returns last. It evaluates the predicate exactly N + 1 times.
The second template function behaves the same, except that the predicate is pr(*(first + N), *(first + N +
1)).
Sample programs: adjacent_find and adjacent_find (predicate version).