
- 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++ Library - <generator>
The <generator> header is part of the Standard Template Library (STL), used for generating sequences of numbers or values and provides support for coroutines.
Mainly facilitates creating various sequences of numbers, such as arithmetic sequences and to create random numbers.
Including <generator> Header
To include the <generator> header in your C++ program, you can use the following syntax.
#include <generator>
Functions of <generator> Header
Below is list of all functions from <generator> header.
S.No | Functions & Description |
---|---|
1 |
operator=
This function assigns one generator object to another. |
2 |
begin
This function resumes the initially suspended coroutine and returns an iterator pointing to handle. |
3 |
end
This function returns a sentinel value (std::default_sentinel), which signifies the end of the range for the generator. |
4 |
empty
This function checks if the derived view is empty. |
5 |
cbegin
This function returns a constant iterator to the beginning of the range. |
6 |
cend
This function returns a sentinel value for the constant iterator of the range, marking the end of the range. |
7 |
operator bool
This function returns whether the derived view is not empty. Provided if ranges::empty is applicable to it. |
Assigning Generators
In the below example code we are going to use, operator= to assign one generator object to another.
#include <generator> #include <iostream> std::generator<int> generate_numbers() { for (int i = 0; i < 5; ++i) { co_yield i; } } int main() { auto gen1 = generate_numbers(); auto gen2 = gen1; for (int num : gen2) { std::cout << num << " "; } return 0; }
Output
If we run the above code it will generate the following output
0 1 2 3 4