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번 오버로드ffirst부터 순서대로 적용해요.
  • 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

더 알아보기 (Learn more)

cppreference