algorithm_generate_n

algorithm_generate_n (지정 개수 함수 결과 채우기)

std::generate_n은 함수 객체 gen()을 반복 호출한 결과로 대상 범위의 처음 count개 요소를 채워요.

출처: cppreference

본문

std::generate_n<algorithm> 헤더에 정의되어 있어요.

template< class OutputIt, class Size, class Generator >
OutputIt generate_n( OutputIt first, Size count, Generator gen );

count가 양수이면 대상 범위 [first, std::next(first, count))의 각 요소에 gen()을 연속 평가한 결과를 할당해요. 그렇지 않으면 아무것도 하지 않아요. 병렬 실행 정책을 받는 오버로드도 있어요.

반환값 (Return value)

마지막으로 생성된 요소의 다음 반복자예요. count가 양수가 아니면 first를 돌려줘요.

복잡도 (Complexity)

정확히 max(count, 0)번의 gen() 평가와 배정이 필요해요.

예제 (Example)

#include <algorithm>
#include <iostream>
#include <vector>

int main()
{
    std::vector<int> v(6);
    std::generate_n(v.begin(), 4, [n = 1]() mutable { return n *= 2; });
    for (int x : v) std::cout << x << ' ';
    std::cout << '\n';
}

출력:

2 4 8 16 0 0

더 알아보기 (Learn more)

cppreference