generate

generate (함수 결과로 채우기)

범위의 각 요소에 생성기 함수의 호출 결과를 대입하는 알고리즘이에요. <algorithm> 헤더에 있어요.

출처: cppreference

본문

generate는 대상 범위 [first, last)의 각 요소에 gen()을 연속 호출한 결과를 대입해요.

template< class ForwardIt, class Generator >
void generate( ForwardIt first, ForwardIt last, Generator gen );   // (1)
    1. 각 요소에 gen()의 호출 결과를 대입해요.
    1. 실행 정책 버전(C++17).
std::vector<int> v(5);
int n = 0;
std::generate(v.begin(), v.end(), [&n]{ return n++; });
// v == {0,1,2,3,4}

fill이 같은 값을 채우는 반면, generate는 매번 호출되는 함수(생성기)의 결과로 채워요. 난수 시퀀스나 증가 수열을 채울 때 자주 쓰여요.

더 알아보기 (Learn more)

cppreference