Advertisement
avr39ripe

reverseArrInplacePointerTemplate

Dec 30th, 2020
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.66 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. template <typename T>
  4. T* reverse(T* srcB, T* srcE)
  5. {
  6.     T* origSrcB{srcB};
  7.     --srcE;
  8.     T tmp;
  9.  
  10.     while(srcB < srcE)
  11.     {
  12.         tmp = *srcB;
  13.         *srcB++ = *srcE;
  14.         *srcE-- = tmp;
  15.     }
  16.  
  17.     return origSrcB;
  18. }
  19.  
  20. template <typename T>
  21. void print(T* begin, T* end)
  22. {
  23.     while (begin != end )
  24.     {
  25.         std::cout << *begin << ' ';
  26.         ++begin;
  27.     }
  28.     std::cout << '\n';
  29. }
  30.  
  31. int main()
  32. {
  33.     const int arrSize{10};
  34.     int arr[arrSize]{1,2,3,4,5,6,7,8,9,10};
  35.     char str[arrSize]{'a','b','c','d','e','f','g','h','i','j'};
  36.  
  37.     reverse(arr,arr+arrSize);
  38.     print(arr,arr+arrSize);
  39.  
  40.     print(reverse(str,str+arrSize),str+arrSize);
  41.  
  42.     return 0;
  43. }
  44.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement