查找两个连续且相等的元素。
ForwardIterator adjacent_find (ForwardIterator beg, ForwardIterator end);
adjacent_find (ForwardIterator beg, ForwardIterator end,BinaryPredicate op);
- 第一种形式查找区间内第一对连续两个相等的元素,并返回相同元素的第一个元素的位置。
- 第二种形式查找区间内第一对连续两个元素使二元谓语op返回true的第一个元素的位置。
- 如果没找到符合条件的两种形式都返回end。
- op不应在执行过程中改变状态,也不应该改变元素的内容。
例:
int main()
{
vector<int>v{ 1,2,3,4,5,6,7,1,1,2,0,3,9,4,8,8,4 };
auto pos = adjacent_find(v.begin(), v.end());
if (pos!=v.end())
{
cout << *pos<<ends;
}
pos = adjacent_find(v.begin(), v.end(),greater<int>());
if (pos != v.end())
{
cout << *pos;
}
return 0;
}
输出结果:2 4