背景
在使用數組時,有時需要遞增地給數組中每個元素賦值。
此時使用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