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는 정해진 증가 수열로 채워요.