#include #include "ArrayT.h" using namespace std; ArrayT::ArrayT(size_t c){ capacity = c; data = new ItemTypeT[capacity]; } ArrayT::ArrayT(const ArrayT & src){ size = src.size; capacity = src.capacity; data = new ItemTypeT[capacity]; for(size_t idx = 0; idx < size; ++idx) { data[idx] = src.data[idx]; } } ArrayT::~ArrayT() { delete [] data; // data[3] data = nullptr; } ArrayT & ArrayT::operator = (const ArrayT & src) { if (this != &src) { size = src.size; capacity = src.capacity; if (data != nullptr) { delete [] data; } data = new ItemTypeT[capacity]; for(size_t i = 0; i < size; ++i) { data[i] = src.data[i]; } } return * this; } void ArrayT::PushBack(ItemTypeT i){ ItemTypeT * tmp{nullptr}; if (size == capacity) { ++capacity ; tmp = new ItemTypeT[capacity]; for(size_t idx = 0; idx < size; ++idx) { tmp[idx] = data[idx]; } delete [] data; data = tmp; tmp = nullptr; } data[size] = i; ++size; } void ArrayT::PopBack(){ if (size >0) { --size; } } ItemTypeT & ArrayT::operator[] (size_t index){ if (index