
- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <multimap>
- C++ Library - <queue>
- C++ Library - <priority_queue>
- C++ Library - <set>
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- The C++ Advanced Library
- C++ Library - <any>
- C++ Library - <barrier>
- C++ Library - <bit>
- C++ Library - <chrono>
- C++ Library - <cinttypes>
- C++ Library - <clocale>
- C++ Library - <condition_variable>
- C++ Library - <coroutine>
- C++ Library - <cstdlib>
- C++ Library - <cstring>
- C++ Library - <cuchar>
- C++ Library - <charconv>
- C++ Library - <cfenv>
- C++ Library - <cmath>
- C++ Library - <ccomplex>
- C++ Library - <expected>
- C++ Library - <format>
- C++ Library - <future>
- C++ Library - <flat_set>
- C++ Library - <flat_map>
- C++ Library - <filesystem>
- C++ Library - <generator>
- C++ Library - <initializer_list>
- C++ Library - <latch>
- C++ Library - <memory_resource>
- C++ Library - <mutex>
- C++ Library - <mdspan>
- C++ Library - <optional>
- C++ Library - <print>
- C++ Library - <ratio>
- C++ Library - <scoped_allocator>
- C++ Library - <semaphore>
- C++ Library - <source_location>
- C++ Library - <span>
- C++ Library - <spanstream>
- C++ Library - <stacktrace>
- C++ Library - <stop_token>
- C++ Library - <syncstream>
- C++ Library - <system_error>
- C++ Library - <string_view>
- C++ Library - <stdatomic>
- C++ Library - <variant>
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
C++ Numeric::iota() function
The C++ std::numeric::iota() function is used to fill a range of elements with sequentially increasing values. It takes three arguments, the beginning iterator, end iterator and the starting value. It starts from the provided value and increments it for each subsequent element in the range.
Syntax
Following is the syntax for std::numeric::iota() function.
void iota (ForwardIterator first, ForwardIterator last, T val);
Parameters
- first, last − It indicate the iterators to the initial and final positions in a sequence.
- val − It is an initial value for the accumulator.
Return Value
none
Exceptions
It throws if any of the assignments or increments throws.
Data races
The elements in the range [first1,last1) are accessed.
Example 1
In the following example, we are going to consider the basic usage of the iota() function.
#include <iostream> #include <numeric> #include <array> int main() { std::array < int, 4 > a; std::iota(a.begin(), a.end(), 1); for (int x: a) { std::cout << x << " "; } return 0; }
Output
Output of the above code is as follows −
1 2 3 4
Example 2
Consider the following example, we are going to fill the array with even numbers.
#include <iostream> #include <numeric> #include <vector> int main() { std::vector < int > a(4); std::iota(a.begin(), a.end(), 0); for (int & x: a) { x *= 2; } for (int x: a) { std::cout << x << " "; } return 0; }
Output
If we run the above code it will generate the following output −
0 2 4 6
Example 3
Let's look at the following example, where we are going to fill it with the negative values.
#include <iostream> #include <numeric> #include <list> int main() { std::list < int > a(4); std::iota(a.begin(), a.end(), -4); for (int x: a) { std::cout << x << " "; } return 0; }
Output
Following is the output of the above code −
-4 -3 -2 -1