C++ 库 - <generator>



<generator> 头文件是标准模板库 (STL) 的一部分,用于生成数字或值的序列,并提供对协程的支持。

主要用于创建各种数字序列,例如算术序列以及创建随机数。

包含 <generator> 头文件

要在您的 C++ 程序中包含 <generator> 头文件,可以使用以下语法。

#include <generator>

<generator> 头文件的函数

以下是 <generator> 头文件中所有函数的列表。

序号 函数及描述
1 operator=

此函数将一个生成器对象赋值给另一个生成器对象。

2 begin

此函数恢复最初挂起的协程,并返回一个指向句柄的迭代器。

3 end

此函数返回一个哨兵值 (std::default_sentinel),表示生成器范围的结束。

4 empty

此函数检查派生视图是否为空。

5 cbegin

此函数返回指向范围开头的常量迭代器。

6 cend

此函数返回范围的常量迭代器的哨兵值,标记范围的结束。

7 operator bool

此函数返回派生视图是否不为空。如果 ranges::empty 可用于它,则提供。

赋值生成器

在下面的示例代码中,我们将使用 operator= 将一个生成器对象赋值给另一个生成器对象。

#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;
}

输出

如果我们运行上述代码,它将生成以下输出:

0 1 2 3 4
广告