#include #include class Vector { private: int* data; public: int lenght; Vector() { lenght = 0; data = new int[lenght]; } Vector(Vector &v) { lenght = v.lenght; data = new int[lenght]; memcpy(data, v.data, lenght*4); } void add(int value) { int* next_data = new int[lenght+1]; memcpy(next_data, data, lenght*4); next_data[lenght] = value; delete[] data; data = next_data; lenght++; } void add(int value, int index) { if (index >= lenght) throw "Index bigger then lenght"; int* next_data = new int[lenght+1]; memcpy(next_data, data, index*4); next_data[index] = value; memcpy(next_data+index+1, data+index, (lenght-index)*4); delete[] data; data = next_data; lenght++; } int pop() { int* next_data = new int[lenght-1]; int value = data[lenght-1]; memcpy(next_data, data, (lenght-1)*4); delete[] data; data = next_data; lenght--; return value; } int pop(int index) { if (index >= lenght) throw "Index bigger then lenght"; int* next_data = new int[lenght-1]; int value = data[index]; memcpy(next_data, data, index*4); memcpy(next_data+index, data+index+1, (lenght-index-1)*4); delete[] data; data = next_data; lenght--; return value; } int operator[](int index) { if (index >= lenght) throw "Index bigger then lenght"; return data[index]; } friend std::ostream &operator <<(std::ostream &os, Vector &v) { os << '['; for(int i = 0; i