C++ 算法 adjacent_find() 函数在范围 [first, last] 上对两个连续匹配元素的第一次出现执行搜索操作。如果找到这样的元素,则返回指向两个元素中第一个元素的迭代器。否则,返回最后一个元素。
用法
template<class ForwardIterator>
ForwardIterator adjacent_find(ForwardIterator first, ForwardIterator last);
template<class ForwardIterator, class BinaryPredicate>
ForwardIterator adjacent_find(ForwardIterator first,ForwardIterator last BinaryPredicate pred);
参数
first: 它是指向范围内第一个元素的前向迭代器。
last: 它是到范围内最后一个元素的前向迭代器。
pred: 它是一个二元函数,它接受两个元素作为参数并执行函数设计的任务。
返回值
如果找到两个连续的匹配元素,则该函数返回指向范围 [first,last) 的第一个元素的迭代器,否则返回最后一个元素。
例子1
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
bool myfunc(int j, int k)
{
return(j==k);
}
int main()
{
int newints[]={5,20,5,50,50,20,60,60,20};
std::vector<int> newvector(newints, newints+8);
std::vector<int>::iterator ti;
ti=std::adjacent_find(newvector.begin(),newvector.end());
if(ti!=newvector.end())
std::cout<<"In the given range the first pair of sequence that is repeated is:"<<*ti<<"\n";
ti=std::adjacent_find(++ti,newvector.end(),myfunc);
if(ti!=newvector.end())
std::cout<<"In the given range the second pair of sequence that is repeated is:"<<*ti<<"\n";
return 0;
}
输出:
In the given range the first pair of sequence that is repeated are:50 In the given range the second pair of sequence that is repeated are:60
例子2
#include<iostream>
#include<algorithm>
int main()
{
int A[]={12,14,17,17,19};
int n=sizeof(A)/sizeof(A[0]);
int* ti=std::adjacent_find(A,A+n);
std::cout<<*ti;
}
输出:
17
复杂度
函数的复杂度是线性的,直到第一个和最后一个元素之间的距离。
数据竞争
访问范围的部分或全部元素。
异常
如果任何参数抛出异常,该函数将抛出异常。
相关用法
- C++ atexit()用法及代码示例
- C++ any_of()用法及代码示例
- C++ acos()用法及代码示例
- C++ atof()用法及代码示例
- C++ abort()用法及代码示例
- C++ atol()用法及代码示例
- C++ complex acosh()用法及代码示例
- C++ array at()用法及代码示例
- C++ complex atanh()用法及代码示例
- C++ array::fill()、array::swap()用法及代码示例
- C++ array::operator[]用法及代码示例
- C++ atoll()用法及代码示例
- C++ array::size()用法及代码示例
- C++ array::rbegin()、array::rend()用法及代码示例
- C++ atan()用法及代码示例
- C++ complex abs()用法及代码示例
- C++ array::front()、array::back()用法及代码示例
- C++ array::front()用法及代码示例
- C++ array get()用法及代码示例
- C++ array::back()用法及代码示例
注:本文由纯净天空筛选整理自 C++ Algorithm Function adjacent_find()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。