std::experimental::ranges:: for_each
|
헤더 파일에 정의됨
<experimental/ranges/algorithm>
|
||
|
template
<
InputIterator I, Sentinel
<
I
>
S,
class
Proj
=
ranges::
identity
,
IndirectUnaryInvocable
<
projected
<
I, Proj
>>
Fun
>
|
(1) | (ranges TS) |
|
template
<
InputRange R,
class
Proj
=
ranges::
identity
,
IndirectUnaryInvocable
<
projected
<
ranges::
iterator_t
<
R
>
, Proj
>>
Fun
>
|
(2) | (ranges TS) |
[
first
,
last
)
내의 모든 반복자를 역참조한 결과에 프로젝션
proj
를 적용한 후, 그 결과에 주어진 함수 객체
f
를 순서대로 호출합니다
(즉,
ranges::
invoke
(
f,
ranges::
invoke
(
proj,
*
i
)
)
).
두 오버로드 모두에서, 반복자 타입이 mutable인 경우, f 는 역참조된 반복자를 통해 범위의 요소들을 수정할 수 있습니다. 만약 f 가 결과를 반환하는 경우, 해당 결과는 무시됩니다.
다른 알고리즘들과 달리, for_each는 요소들이 사소하게 복사 가능하더라도 시퀀스 내 요소들의 복사본을 만들 수 없습니다.
std::for_each
(이
MoveConstructible
만 요구하는 것)와 달리, 이 함수들은
Fun
이
CopyConstructible
을 모델링해야 합니다.
위에 기술된 선언들과는 별개로, 알고리즘 선언의 실제 템플릿 매개변수 개수와 순서는 명시되지 않습니다. 따라서 알고리즘을 호출할 때 명시적 템플릿 인자를 사용하는 경우, 해당 프로그램은 이식성이 없을 가능성이 높습니다.
목차매개변수
반환값
다음 두 멤버를 포함하는
복잡도정확히 last - first 번의 f 와 proj 적용. 가능한 구현
예제
참고
|