Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- #include <numeric>
- template <typename T>
- class gen
- {
- T cnt;
- public:
- gen(T val): cnt{val} {};
- gen() : gen{0} {};
- T operator()() { return cnt++; };
- };
- template <typename T>
- class mul
- {
- T multipler;
- public:
- mul(T val): multipler{val} {};
- mul() : mul{0} {};
- void operator()(T& arg) { arg *= multipler; };
- };
- int main()
- {
- // std::pair p{std::make_pair(0, "Apple")};
- // std::cout << p.first << ' ' << p.second << '\n';
- std::vector<int> arr{1,2,4,1,5,6,1,7,8,1,9,1};
- //std::partial_sum(arr.begin(), arr.end(), std::ostream_iterator<int>(std::cout , " "));
- //std::cout << std::accumulate(arr.begin(), arr.end(),1,[](auto a, auto b){ return a*b;}) << '\n';
- auto curr{arr.begin()};
- while ( (curr = std::find(curr,arr.end(),1)) != arr.end())
- {
- std::cout << std::distance(arr.begin(),curr) << '\n';
- curr++;
- }
- gen<int> g{1};
- mul<int> m{3};
- std::generate(arr.begin(), arr.end(),g);
- std::copy(arr.begin(), arr.end(),std::ostream_iterator<int>(std::cout, " "));
- std::for_each(arr.begin(), arr.end(),m);
- std::copy(arr.begin(), arr.end(),std::ostream_iterator<int>(std::cout, " "));
- }
Advertisement
Add Comment
Please, Sign In to add comment