gpt4 book ai didi

c++ - 如何在C++中制作无限序列

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:20 25 4
gpt4 key购买 nike

我使用的是 Visual Studio 2012,所以 C++11 基本没问题...boost 也很好,但我宁愿避免使用其他库,至少不是 widley 使用过的库。

我想以最优雅的方式创建一个返回无限序列的只向前迭代器。例如所有自然数的序列。

基本上我想要这个 f# 代码的 C++ 等价物:

let nums =
seq { while true do
yield 1
yield 2
}

上面的代码基本上创建了一个返回 [1;2;1;2...] 的枚举器

我知道我可以通过编写一个类来做到这一点,但是对于所有新的 lambda 和所有...,必须有一个更短的方法

最佳答案

这是你想要的吗:

#include <iostream>
#include <vector>

int main()
{
auto nums = []
{
static unsigned x = 2;
return ( x++ % 2 ) + 1;
};

std::vector< int > v{ nums(), nums(), nums(), nums(), nums() };
for( auto i : v )
{
std::cout << i;
}

return 0;
}

或者我误解了这个问题?

关于c++ - 如何在C++中制作无限序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20264902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com