#include
#include
int main() {
// print [0, 10)
std::cout << "range(10): { ";
for (auto i : iter::range(10)) {
std::cout << i << ' ';
}
std::cout << "}\n";
// print [20, 30)
std::cout << "range(20, 30): { ";
for (auto i : iter::range(20, 30)) {
std::cout << i << ' ';
}
std::cout << "}\n";
// prints every second number in the range [50, 60)
std::cout << "range(50, 60, 2): { ";
for (auto i : iter::range(50, 60, 2)) {
std::cout << i << ' ';
}
std::cout << "}\n";
// prints every second number in the range [-10, 10)
std::cout << "range(-10, 10, 2): { ";
for (auto i : iter::range(-10, 10, 2)) {
std::cout << i << ' ';
}
std::cout << "}\n";
// the step doesn't need to cause i to equal stop eventually
std::cout << "range(0, 5, 4): { ";
for (auto i : iter::range(0, 5, 4)) {
std::cout << i << ' ';
}
std::cout << "}\n";
// ranges can count down as well as up
std::cout << "range(-1, -10, -2): { ";
for (auto i : iter::range(-1, -10, -2)) {
std::cout << i << ' ';
}
std::cout << "}\n";
// range works with floats and other types as well
// the usual concerns with float comparison come into play here
std::cout << "range(5.0, 9.9, 0.5): { ";
for(auto i : iter::range(5.0, 9.9, 0.5)) {
std::cout << i << ' ';
}
std::cout << "}\n";
// range also works with unsigned values
std::cout << "range(10u): { ";
for(auto i : iter::range(10u)){
std::cout << i << ' ';
}
std::cout << "}\n";
}