Функция iota
Функция iota заполняет элементы диапазона
последовательными значениями, начиная с заданного
начального числа. В первом параметре мы передаем
итератор начала диапазона, во второй - итератор
конца, а в третий - начальное значение. Каждый
следующий элемент получает значение, увеличенное
на единицу. Функция не возвращает результат, а
изменяет элементы контейнера напрямую.
Синтаксис
#include <numeric>
iota(start, end, value);
Пример
Давайте заполним вектор из 5 элементов
последовательными числами, начиная с 1:
#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
int main()
{
vector<int> vec(5);
iota(vec.begin(), vec.end(), 1);
for (int el : vec) {
cout << el << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 2 3 4 5
Пример
Давайте заполним вектор числами, начиная
с 10:
#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
int main()
{
vector<int> vec(5);
iota(vec.begin(), vec.end(), 10);
for (int el : vec) {
cout << el << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
10 11 12 13 14
Пример
Функцию iota можно использовать
и для заполнения обычного массива:
#include <iostream>
#include <numeric>
using namespace std;
int main()
{
int arr[5];
iota(arr, arr + 5, 0);
for (int el : arr) {
cout << el << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
0 1 2 3 4