#include <iostream>
#include <algorithm>
#include <vector>
struct Number {
int current;
Number() { current = 0; }
int operator()() { return current++; }
} Number;
void printVector(std::vector<int> const &v) {
for (auto const &n: v) {
std::cout << n << " ";
}
}
int main() {
std::vector<int> vec(10);
generate(vec.begin(), vec.end(), Number);
printVector(vec);
}
/*
run:
0 1 2 3 4 5 6 7 8 9
*/