Разворот последовательности 3

Разворот последовательности

Условие

Реализуйте функции Reverse и CopyReverse. Обе функции принимают вектор целых чисел. Первая переставляет элементы вектора в обратном порядке (in place), а вторая возвращает копию вектора, в которой элементы расположены в обратном порядке.

Примеры

vector<int> numbers = {1, 5, 3, 4, 2};
Reverse(numbers);
// numbers должен оказаться равным {2, 4, 3, 5, 1}
vector<int> numbers = {1, 5, 3, 4, 2};
auto copy_numbers = CopyReverse(numbers);
// copy_numbers должен быть равным {2, 4, 3, 5, 1},
// при этом numbers остается {1, 5, 3, 4, 2}

Как тестировать решение локально

Собрать программу с помощью cmake и запустить ctest:

cmake -S . -B build/ -G "MinGW Makefiles"
cmake --build build/
ctest --test-dir build -V