SGI

adjacent_find

类别:算法 组件类型:函数

原型

Adjacent_find是一个重载名称;实际上有两个adjacent_find函数。
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);

描述

版本的第一个adjacent_find返回第一个迭代器i使得ii+1都是中的有效迭代器[first, last),并且使得*i == *(i+1)。如果不存在这样的迭代器,则返回last

第二个版本的adjacent_find返回第一个迭代器i使得ii+1都是中的有效迭代器[first, last),并且使得binary_pred(*i, *(i+1))true。如果不存在这样的迭代器,则返回last

定义

在标准头文件 algorithm 中定义,并且在非标准向后兼容性头文件 algo.h 中定义。

类型要求

对于第一个版本对于第二个版本

先决条件

复杂性

线性。如果first == last则不执行比较;否则,最多(last - first) - 1个比较。

示例

查找第一个大于其后继元素的元素。
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;

注释

另请参见

find, mismatch, equal, search
[Silicon Surf] [STL Home]
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。 TrademarkInformation