std::experimental::ranges:: search
|
헤더 파일에 정의됨
<experimental/ranges/algorithm>
|
||
|
template
<
ForwardIterator I1, Sentinel
<
I1
>
S1,
ForwardIterator I2, Sentinel
<
I2
>
S2,
class
Pred
=
ranges::
equal_to
<>
,
|
(1) | (ranges TS) |
|
template
<
ForwardRange R1, ForwardRange R2,
class
Pred
=
ranges::
equal_to
<>
,
class
Proj1
=
ranges::
identity
,
class
Proj2
=
ranges::
identity
>
|
(2) | (ranges TS) |
[
first1
,
last1
)
에서 요소 시퀀스
[
first2
,
last2
)
의 첫 번째 발생을 검색합니다. 요소는 각각
proj2
와
proj1
으로 투영된 후
pred
를 사용하여 비교됩니다.
위에 설명된 선언들과는 별개로, 알고리즘 선언에 대한 실제 템플릿 매개변수의 개수와 순서는 명시되지 않습니다. 따라서 알고리즘을 호출할 때 명시적 템플릿 인수를 사용하는 경우, 해당 프로그램은 이식성이 없을 가능성이 높습니다.
목차 |
매개변수
| first1, last1 | - | 검사할 요소들의 범위 |
| r1 | - | 검사할 요소들의 범위 |
| first2, last2 | - | 검색할 요소들의 범위 |
| r2 | - | 검색할 요소들의 범위 |
| pred | - | 투영된 요소들에 적용할 조건자 |
| proj1 | - | 첫 번째 범위의 요소들에 적용할 투영 |
| proj2 | - | 두 번째 범위의 요소들에 적용할 투영 |
반환값
범위
[
first1
,
last1
)
내에서 시퀀스
[
first2
,
last2
)
의 첫 번째 발생 시작 부분을 가리키는 반복자입니다.
[
first2
,
last2
)
가 비어 있는 경우
first1
가 반환됩니다. 해당 발생을 찾을 수 없는 경우
last1
와 동일하게 비교되는 반복자가 반환됩니다.
복잡도
최대
S * N
번의 술어 및 각 투영 적용, 여기서
S
=
last2
-
first2
이고
N
=
last1
-
first1
입니다.
가능한 구현
template<ForwardIterator I1, Sentinel<I1> S1, ForwardIterator I2, Sentinel<I2> S2, class Pred = ranges::equal_to<>, class Proj1 = ranges::identity, class Proj2 = ranges::identity> requires IndirectlyComparable<I1, I2, Pred, Proj1, Proj2> I1 search(I1 first1, S1 last1, I2 first2, S2 last2, Pred pred = Pred{}, Proj1 proj1 = Proj1{}, Proj2 proj2 = Proj2{}) { for (; ; ++first1) { I1 it = first1; for (I2 it2 = first2; ; (void)++it, (void)++it2) { if (it2 == last2) return first1; if (it == last1) return it; if (!ranges::invoke(pred, ranges::invoke(proj1, *it), ranges::invoke(proj2, *it2))) break; } } } |
예제
|
이 섹션은 불완전합니다
이유: 예제가 없음 |
참고 항목
|
요소 범위의 첫 번째 발생을 검색합니다
(함수 템플릿) |
|
|
특정 범위에서 마지막 요소 시퀀스를 찾습니다
(함수 템플릿) |
|
|
한 집합이 다른 집합의 부분집합이면
true
를 반환합니다
(함수 템플릿) |
|
|
두 요소 집합이 동일한지 확인합니다
(함수 템플릿) |
|
|
특정 기준을 만족하는 첫 번째 요소를 찾습니다
(함수 템플릿) |
|
|
한 범위가 다른 범위보다 사전순으로 작으면
true
를 반환합니다
(함수 템플릿) |
|
|
두 범위가 처음으로 달라지는 위치를 찾습니다
(함수 템플릿) |
|
|
범위에서 연속된 특정 요소의 복사본을 검색합니다
(함수 템플릿) |