#include #include using namespace std; template class Vector { protected: T * data; int size, num; void enlarge() { int newsize = size * 2; if (newsize == 0) newsize = 1; T * news = new T [newsize]; for (int i = 0; i < num; i += 1) news[i] = data[i]; delete [] data; data = news; size = newsize; } public: Vector(int initsize) { size = initsize; num = 0; data = new T[size]; } T & get(int i) { if (i < 0 || i >= num) { cout << "index out of bounds\n"; abort(); } return data[i]; } int get_num() { return num; } void push_back(T s) { if (num >= size) enlarge(); data[num] = s; num += 1; } }; int main() { Vector v(2); v.push_back("ant"); v.push_back("bat"); v.push_back("cat"); v.push_back("dog"); v.push_back("emu"); v.push_back("fly"); v.push_back("gnu"); v.push_back("hen"); Vector w(2); w.push_back(3); w.push_back(1); w.push_back(4); w.push_back(1); w.push_back(5); w.push_back(9); w.push_back(2); for (int i = 0; i < v.get_num(); i += 1) { cout << i << ": " << v.get(i) << "\n"; } v.get(5) = "hippopotamus"; for (int i = 0; i < v.get_num(); i += 1) { cout << i << ": " << v.get(i) << "\n"; } for (int i = 0; i < w.get_num(); i += 1) { cout << i << ": " << w.get(i) << "\n"; } }