iota 函数是一个计算机语言中的函数,用于产生连续的值。该函数得名自 APL 语言,其中用来产生从 1 开始的连续数值。

该函数位于头文件#include 中。

定义在 numeric 头文件中的 iota() 函数模板会用连续的 T 类型值填充序列。前两个参数是定义序列的正向迭代器,第三个参数是初始的 T 值。第三个指定的值会被保存到序列的第一个元素中。保存在第一个元素后的值是通过对前面的值运用自增运算符得到的。当然,这意味着 T 类型必须支持 operator++()。

iota函数对一个范围数据进行赋值:

template <class ForwardIterator, class T>
void iota (ForwardIterator first, ForwardIterator last, T val)
{
while (first!=last) {
*first = val;
++first;
++val;
}
}

用法:

// iota example
#include <iostream> // std::cout
#include <numeric> // std::iota

int main () {
int numbers[10];

std::iota (numbers,numbers+10,100);

std::cout << "numbers:";
for (int& i:numbers) std::cout << ' ' << i;
std::cout << '\n';

return 0;
}

output:

numbers: 100 101 102 103 104 105 106 107 108 109