#include <algorithm> // For std::reverse
#include <iostream> // For console output
#include <vector> // For std::vector
using namespace std;
// Used to print elements of a sequence (like vector).
template <typename Sequence>
void print(const Sequence& s) {
cout << "[ ";
for (const auto& x : s) {
cout << x << ' ';
}
cout << "]" << endl;
}
int main() {
cout << "Original vector:\n";
vector<int> v{10, 20, 30, 40, 50};
print(v);
vector<int> v2(v.rbegin(), v.rend());
cout << "\nReversed copy using reverse iterators:\n";
print(v2);
reverse(v.begin(), v.end());
cout << "\nReversed in-place using std::reverse():\n";
print(v);
}
I2luY2x1ZGUgPGFsZ29yaXRobT4gICAgLy8gRm9yIHN0ZDo6cmV2ZXJzZQojaW5jbHVkZSA8aW9zdHJlYW0+ICAgICAvLyBGb3IgY29uc29sZSBvdXRwdXQKI2luY2x1ZGUgPHZlY3Rvcj4gICAgICAgLy8gRm9yIHN0ZDo6dmVjdG9yCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovLyBVc2VkIHRvIHByaW50IGVsZW1lbnRzIG9mIGEgc2VxdWVuY2UgKGxpa2UgdmVjdG9yKS4KdGVtcGxhdGUgPHR5cGVuYW1lIFNlcXVlbmNlPgp2b2lkIHByaW50KGNvbnN0IFNlcXVlbmNlJiBzKSB7CiAgICBjb3V0IDw8ICJbICI7CiAgICBmb3IgKGNvbnN0IGF1dG8mIHggOiBzKSB7CiAgICAgICAgY291dCA8PCB4IDw8ICcgJzsKICAgIH0KICAgIGNvdXQgPDwgIl0iIDw8IGVuZGw7Cn0KCmludCBtYWluKCkgewogICAgY291dCA8PCAiT3JpZ2luYWwgdmVjdG9yOlxuIjsKICAgIHZlY3RvcjxpbnQ+IHZ7MTAsIDIwLCAzMCwgNDAsIDUwfTsKICAgIHByaW50KHYpOwoKICAgIHZlY3RvcjxpbnQ+IHYyKHYucmJlZ2luKCksIHYucmVuZCgpKTsKICAgIGNvdXQgPDwgIlxuUmV2ZXJzZWQgY29weSB1c2luZyByZXZlcnNlIGl0ZXJhdG9yczpcbiI7CiAgICBwcmludCh2Mik7CgogICAgcmV2ZXJzZSh2LmJlZ2luKCksIHYuZW5kKCkpOyAgICAKICAgIGNvdXQgPDwgIlxuUmV2ZXJzZWQgaW4tcGxhY2UgdXNpbmcgc3RkOjpyZXZlcnNlKCk6XG4iOwogICAgcHJpbnQodik7Cn0K