如果我做对了,我可以用它来迭代一个固定的范围:
for(int i: {1,2,3,4,5}) do_sth(i);
这是同样的事情:
vector<int> v{1,5}; for(int i: v) do_sth(i);
但是如果我想迭代1,…,100的范围并且在编译时已经知道怎么办?
最美妙的方法是什么?
效率最高的是什么?
什么最短的?
编辑:当然我可以写一个常规的for循环,但实际的用例将涉及比int更复杂的内容.
我稍微简化了一下这个例子.
解决方法
您可以“轻松”编写表示整数范围的范围兼容类.你只需要为它编写迭代器.
或者你可以使用Boost.Range’s counting_range
,就是这样.