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
廣告