Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- template <class T>
- concept LikeArray = requires (T&& arr) {
- arr[0];
- std::size(arr);
- std::begin(arr);
- std::end(arr);
- };
- template <class T> requires LikeArray<T>
- void reverse(T& arr) {
- const int N = std::size(arr);
- for (int i = 0; i < N / 2; i++) {
- std::swap(arr[i], arr[N - i - 1]);
- }
- }
- template<class T> requires LikeArray<T>
- void print_array(const T& arr){
- for (auto it = std::begin(arr); it < std::end(arr); it++) {
- std::cout << *it << std::endl;
- }
- }
- int main(int ac, char **av) {
- std::vector<int> vec {1, 2, 3};
- reverse(vec);
- print_array(vec);
- std::cout << std::endl << "=====" << std::endl << std::endl;
- int array[] = {1, 2, 3, 4, 5, 6};
- reverse(array);
- print_array(array);
- }
Advertisement
Add Comment
Please, Sign In to add comment