什么是生成器函数,举个C++例子
时间: 2024-03-18 21:39:53 浏览: 82
c++随机数产生函数
5星 · 资源好评率100%
生成器函数是一种特殊的函数,它可以生成一个序列(例如数字、字符串等),而不是一次性返回整个序列。当需要处理大量数据时,这种生成器函数可以提供更高效的解决方案,因为它可以按需生成数据,而不是一次性生成整个序列。
在 C++ 中,使用 `yield` 关键字可以创建一个生成器函数。`yield` 关键字用于将一个值返回给调用者,并且暂停函数的执行,等待下一次调用。下面是一个简单的使用 `yield` 关键字的 C++ 生成器函数的例子:
```c++
#include <iostream>
#include <vector>
std::vector<int> generator(int start, int end) {
for (int i = start; i <= end; ++i) {
co_yield i;
}
}
int main() {
for (auto x : generator(1, 5)) {
std::cout << x << " ";
}
std::cout << std::endl;
return 0;
}
```
在上面的代码中,`generator` 函数使用 `co_yield` 关键字生成从 `start` 到 `end` 的整数序列。在 `main` 函数中,我们通过循环遍历生成器函数返回的序列,并将每个值输出到控制台。需要注意的是,使用生成器函数需要使用协程(coroutine)支持,因此需要在编译时启用协程支持。
阅读全文