Възможно дублиране:
Има ли клас клас в C + + 11 за използване с диапазон, основан на цикли?
Т.е. има ли стандартен диапазон с iterator, който ще dereference до цяло число? Мисля за нещо такова:
for (int i : rangeTo(10)) { ... }
for (int i : rangeFromTo(10, 20)) { .... }
Отговори:
6 за отговор № 1Не, но има boost::irange
:
#include <boost/range/irange.hpp>
...
for (auto i : boost::irange(10, 20))
{
std::cout << i << " ";
}
и boost::counting_range
for (auto i : boost::counting_range(10, 20))
{
std::cout << i << " ";
}
Разликата е, че можете да добавите стъпка, за boost::irange(10, 20, 2)
.