温馨提示×

c++中yield函数的用法是什么

c++
小亿
90
2024-05-31 19:33:14
栏目: 编程语言

在C++中,yield函数通常用于生成器函数中,用于将一个值返回给调用者,并暂停执行生成器函数。调用者可以继续执行生成器函数,并使用yield来返回下一个值。这样可以实现惰性求值和生成序列等功能。

以下是一个简单的示例,演示了如何在C++中使用yield函数:

#include <iostream>
#include <vector>

// 生成器函数
std::vector<int> generateNumbers() {
    for (int i = 0; i < 10; ++i) {
        co_yield i; // 使用co_yield来返回值并暂停函数执行
    }
}

int main() {
    auto numbers = generateNumbers();
    
    for (int num : numbers) {
        std::cout << num << " ";
    }
    
    return 0;
}

在上面的示例中,generateNumbers函数是一个生成器函数,使用co_yield关键字来返回值并暂停函数执行。在主函数中,我们可以通过迭代生成器函数的返回值来获取生成的数字序列,并输出到控制台。

需要注意的是,在C++20中,使用生成器函数和yield关键字需要编译器对协程的支持。因此,需确保编译器支持C++20标准的协程功能。

0