前端之家收集整理的这篇文章主要介绍了
如何在C中创建无限序列,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Visual Stu
dio 2012,因此C 11大部分都可以……
提升也很好,但我宁愿避免其他的自由,至少不是威德利用过的.
我想以最优雅的方式创建一个只返回无限序列的前向迭代器.例如,所有自然数的序列.
基本上我想要这个f#代码的C等效:
let nums =
seq { while true do
yield 1
yield 2
}
上面的代码基本上创建了一个返回[1; 2; 1; 2 …]的枚举器
我知道我可以通过写一个课来做到这一点,但是所有新的lambdas和所有……都必须有一个更短的方式……
更简单的事情,如果你可以依赖于提升就是写这样的东西:
int i = 0;
auto gen = boost::make_generator_iterator([=]() { return i++; });
C 14版:
auto gen = boost::make_generator_iterator([i=0]() { return i++;});
文档是here.
P.S.:我不确定它是否可以在没有result_type成员的情况下工作,C 03仿函数需要它.
原文链接:https://www.f2er.com/c/117130.html