Advertisement
avr39ripe

reverseArrPointerTemplate

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