作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我使用的是 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/
我是一名优秀的程序员,十分优秀!