avr39ripe

stlExamplesDraft

Aug 17th, 2020
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.18 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <numeric>
  5.  
  6. template <typename T>
  7. class gen
  8. {
  9.     T cnt;
  10. public:
  11.     gen(T val): cnt{val} {};
  12.     gen() : gen{0} {};
  13.     T operator()() { return cnt++; };
  14. };
  15.  
  16.  
  17. template <typename T>
  18. class mul
  19. {
  20.     T multipler;
  21. public:
  22.     mul(T val): multipler{val} {};
  23.     mul() : mul{0} {};
  24.     void operator()(T& arg) { arg *= multipler; };
  25. };
  26.  
  27. int main()
  28. {
  29. //  std::pair p{std::make_pair(0, "Apple")};
  30. //  std::cout << p.first << ' ' << p.second << '\n';
  31.     std::vector<int> arr{1,2,4,1,5,6,1,7,8,1,9,1};
  32.  
  33.  
  34.     //std::partial_sum(arr.begin(), arr.end(), std::ostream_iterator<int>(std::cout , " "));
  35.     //std::cout << std::accumulate(arr.begin(), arr.end(),1,[](auto a, auto b){ return a*b;}) << '\n';
  36.  
  37.     auto curr{arr.begin()};
  38.     while ( (curr = std::find(curr,arr.end(),1)) != arr.end())
  39.     {
  40.         std::cout << std::distance(arr.begin(),curr) << '\n';
  41.         curr++;
  42.     }
  43.  
  44.     gen<int> g{1};
  45.     mul<int> m{3};
  46.  
  47.     std::generate(arr.begin(), arr.end(),g);
  48.     std::copy(arr.begin(), arr.end(),std::ostream_iterator<int>(std::cout, " "));
  49.     std::for_each(arr.begin(), arr.end(),m);
  50.     std::copy(arr.begin(), arr.end(),std::ostream_iterator<int>(std::cout, " "));
  51. }
  52.  
Advertisement
Add Comment
Please, Sign In to add comment