Загрузка данных


#include <iostream>
using namespace std;

class Array {
    int len;                     // Длина массива
    int* data;                   // Дин. массив с числами
public:
    Array();
    ~Array();

    int length() { return len; } // Метод для получения длины массива
    void reverse();              // Перевернуть массив задом-наперед

    // Операция вывода массива
    friend ostream& operator << (ostream&, const Array&);

    // Операция ввода массива
    friend istream& operator >> (istream&, Array&);
};
Array::~Array() { delete[] data; }
Array::Array() {
    len = 0;
    data = new int[0];
}
void Array::reverse() {
    for (int i = 0; i < len / 2; i++)
        swap(data[i], data[len - i - 1]);
}
istream& operator>>(istream& cin, Array& a) {
    cin >> a.len;
    delete[] a.data;
    a.data = new int[a.len];
    for (int i = 0; i < a.len; i++)  cin >> a.data[i];
    return cin;
}
ostream& operator<<(ostream& cout, const Array& a) {
    cout << a.len << endl;
    for (int i = 0; i < a.len; i++) cout << a.data[i] << " ";
    return cout;
}
int main() {
    Array arr;
    cin >> arr;
    arr.reverse();
    cout << arr;
    return 0;
}