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 _Comp
);
매개 변수
_First
검색할 주소 범위의 첫 번째 요소의 위치는 정방향 반복기입니다._Last
검색할 위치 하나 과거 최종 요소 범위에 있는 주소는 정방향 반복기입니다._Comp
조건 값이 인접 한 요소에서 검색 범위를 만족 하 게 이진 술 부.
반환 값
정방향 반복기 중 하나 (첫 번째 버전)에서 서로 같음 또는 이진 술 부 (두 번째, 버전)에서 주어진 조건을 만족 시키는 쌍의 요소를 발견 하는 경우에 인접 한 쌍의 첫 번째 요소입니다.그렇지 않으면 반복기가 가리키는 _Last 이 반환 됩니다.
설명
adjacent_find 알고리즘 nonmutating 시퀀스 알고리즘입니다.검색할 범위의 유효 해야 합니다. 모든 포인터는 dereferenceable 이어야 하 고 마지막 위치에서 첫 번째 접근할 여 증분 합니다.알고리즘의 시간 복잡도 선형의 범위에 포함 된 요소 수입니다.
operator== 일치 요소 간에 등가 관계 연산자는 피연산자 간의 부과 해야 확인 하는 데 사용 합니다.
예제
// alg_adj_fnd.cpp
// compile with: /EHsc
#include <list>
#include <algorithm>
#include <iostream>
// Returns whether second element is twice the first
bool twice (int elem1, int elem2 )
{
return elem1 * 2 == elem2;
}
int main( )
{
using namespace std;
list <int> L;
list <int>::iterator Iter;
list <int>::iterator result1, result2;
L.push_back( 50 );
L.push_back( 40 );
L.push_back( 10 );
L.push_back( 20 );
L.push_back( 20 );
cout << "L = ( " ;
for ( Iter = L.begin( ) ; Iter != L.end( ) ; Iter++ )
cout << *Iter << " ";
cout << ")" << endl;
result1 = adjacent_find( L.begin( ), L.end( ) );
if ( result1 == L.end( ) )
cout << "There are not two adjacent elements that are equal."
<< endl;
else
cout << "There are two adjacent elements that are equal."
<< "\n They have a value of "
<< *( result1 ) << "." << endl;
result2 = adjacent_find( L.begin( ), L.end( ), twice );
if ( result2 == L.end( ) )
cout << "There are not two adjacent elements where the "
<< " second is twice the first." << endl;
else
cout << "There are two adjacent elements where "
<< "the second is twice the first."
<< "\n They have values of " << *(result2++);
cout << " & " << *result2 << "." << endl;
}
요구 사항
헤더: <algorithm>
네임 스페이스: std
참고 항목
참조
Nonpredicate Version of adjacent_find