algorithm_for_each_n
algorithm_for_each_n (지정 개수에 함수 적용)
std::for_each_n은 대상 범위의 처음 count개 요소에 주어진 함수 객체 f를 적용해요. std::for_each와 달리 개수를 명시해요.
출처: cppreference
본문
std::for_each_n은 <algorithm> 헤더에 정의되어 있어요. C++17부터 사용 가능해요.
template< class InputIt, class Size, class UnaryFunc >
InputIt for_each_n( InputIt first, Size count, UnaryFunc f );
목표 범위 [first, std::next(first, count))의 각 요소에 f를 적용해요. f가 결과를 반환하면 그 결과는 무시돼요. count가 양수가 아니면 아무것도 하지 않아요.
- 1번 오버로드 —
f를first부터 순서대로 적용해요. - 2번 오버로드(병렬) — 실행 정책
policy에 따라 적용하며 순서가 보장되지 않아요.
다른 병렬 알고리즘과 달리 for_each_n은 대상 범위의 요소를 임의로 복사하는 것이 허용되지 않아요.
반환값 (Return value)
마지막으로 처리된 요소의 다음 반복자를 돌려줘요.
예제 (Example)
#include <algorithm>
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v1{1, 2, 3, 4, 5};
std::for_each_n(v1.begin(), 3, [](int n) { std::cout << n << ' '; });
std::cout << '\n';
}
출력:
1 2 3