自从 C++11 引入了基于范围的 for 循环 (range-based for in c++11),在整数范围内表示循环的最简洁方式是什么?
代替
for (int i=0; i<n; ++i)
我想写一些类似的东西
for (int i : range(0,n))
新标准是否支持此类内容?
更新:本文介绍了如何在 C++11 中实现范围生成器:Generator in C++
最佳答案
虽然 C++11 不提供,但您可以编写自己的 View 或使用 boost 中的 View :
#include <boost/range/irange.hpp>
#include <iostream>
int main(int argc, char **argv)
{
for (auto i : boost::irange(1, 10))
std::cout << i << "\n";
}
此外,Boost.Range
包含一些更有趣的范围,结合新的 for
循环,您会发现它们非常有用。例如,您可以获得 reversed view .
关于c++ - 循环整数范围的最简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15088900/