iota

iota (증가하는 정수 시퀀스 채우기)

범위를 value부터 시작해 1씩 증가하는 연속 값들로 채우는 알고리즘이에요. <numeric> 헤더, C++11부터.

출처: cppreference

본문

iota는 범위 [first, last)value로 시작해 반복적으로 ++value한 값들로 채워요.

template< class ForwardIt, class T >
void iota( ForwardIt first, ForwardIt last, T value );

동등한 동작은(++value가 참조를 반환한다고 가정):

*first = value;
++first;
... first가 last에 이를 때까지 각 요소에 ++value 결과를 대입

즉 채워지는 값은 value, value+1, value+2, ...이에요. 이름(iota)은 APL 프로그래밍 언어의 그리스 문자 ι에서 유래했어요. C 스타일 ASCII→정수 변환 함수 atoi와는 무관하니 주의하세요.

std::vector<int> v(5);
std::iota(v.begin(), v.end(), 1);   // v == {1,2,3,4,5}

인덱스 0,1,2,... 나 1,2,3,... 같은 증가 수열을 채울 때 자주 써요. generate가 임의 함수 결과로 채우는 반면, iota는 정해진 증가 수열로 채워요.

더 알아보기 (Learn more)

cppreference