fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <iterator>
  4. #include <functional>
  5.  
  6. using namespace std;
  7.  
  8. double f(double x) {
  9. return 4*x+1;
  10. }
  11.  
  12. template<class ForwardIt, class Generator>
  13. void generate_iter(ForwardIt first, ForwardIt last, Generator g)
  14. {
  15. while (first != last) {
  16. *first = g(first);
  17. ++first;
  18. }
  19. }
  20.  
  21. int main() {
  22. size_t constexpr nmax = 10;
  23. std::vector<double> vect1 (nmax);
  24. generate_iter(vect1.begin(), vect1.end(), [&](const std::vector<double>::iterator& iter) {
  25. auto count = std::distance(vect1.begin(), iter);
  26. return f(count);
  27. });
  28. for (size_t i{0} ; i < nmax ; ++i) {
  29. std::cout << vect1[i] << endl;
  30. }
  31. return 0;
  32. }
Success #stdin #stdout 0s 4512KB
stdin
Standard input is empty
stdout
1
5
9
13
17
21
25
29
33
37