Advertisement
Eksekk

Transform

Jun 10th, 2021
820
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.68 KB | None | 0 0
  1. #include <iostream>
  2. #include <functional>
  3. #include <vector>
  4.  
  5. template<typename Iter, typename Iter2, typename Function>
  6. Iter transform(Iter begin, Iter end, Iter2 save, Function func)
  7. {
  8.     while (begin != end)
  9.     {
  10.         *save = func(*begin);
  11.         ++begin;
  12.         ++save;
  13.     }
  14.     return save;
  15. }
  16.  
  17. int main()
  18. {
  19.     std::vector<int> vector1{-7, 5, 1, 2, 11};
  20.     std::vector<int> vector2(5);
  21.     auto result = transform(vector1.cbegin(), vector1.cend(), vector2.begin(), [](int element) {return element * element;});
  22.     for (auto iterator = vector2.cbegin(); iterator < result;)
  23.     {
  24.         std::cout << *iterator++ << " ";
  25.     }
  26.     std::cout << std::endl;
  27. }
  28.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement