背景
在使用数组时,有时需要递增地给数组中每个元素赋值。
此时使用iota()函数就十分方便。
名称来源:
itoa 是 希腊语的第九个字母,读[aɪ’otə]
这个名称是从APL编程语言借鉴过来的。
函数定义
对起点first
到终点last
的整数(均为指针类型)进行递增+1的赋值。
template <class ForwardIterator, class T>
void iota (ForwardIterator first, ForwardIterator last, T val)
{
while (first!=last) {
*first = val;
++first;
++val;
}
}
使用方法
需引入头文件:
#include<numeric>
1. 对于数组
格式:
iota(array, array+length[array], number);
从number开始,分别为数组array数组中各元素递增+1地赋值。
举例说明:
#include<iostream>
#include<numeric>
using namespace std;
int main() {
int number[10];
iota(number, number + 10, 66);
for (int i = 0; i < 10; i++) {
cout << number[i] << " "; //输出:66 67 68 69 70 71 72 73 74 75
}
system("pause");
return 0;
}
2. 对于vector容器
格式:
iota(vector.begin(), vector.end(), number);
从number开始,分别为数组vector容器中各元素递增+1地赋值。
举例说明:
#include<vector>
using namespace std;
int main() {
vector<int>number(10);
iota(number.begin(), number.end(), 66);
for (int i = 0; i < 10; i++) {
cout << number[i] << " "; //输出:66 67 68 69 70 71 72 73 74 75
}
system("pause");
return 0;
}
参考资料
https://www.jianshu.com/p/ffdb4c681392