#include<iostream>#include<cstdlib>#include<cstdio>#include<limits>#include<cstring>using namespace std;template <class T>class myVector{ private: T* data; int len; int size; public: myVector() { data = NULL; len = size = 0; } myVector(int _len) { data = new T[_len]; len = _len; size = 0; } myVector(const myVector& tmp) { if(this == &tmp) return; //delete []data; data = new T[tmp.len]; for(int i=0; i<tmp.size; ++i) data[i] = tmp.data[i]; len = tmp.len; size = tmp.size; } T& operator[](int index) { return data[index]; } const myVector& push_back(const T tmp) { if(size >= len) { T* newData = new T[len*2 + 1]; memcpy(newData, data, len*sizeof(T)); delete []data; data = newData; len = 2*len + 1; } data[size++] = tmp; printALL(); return *this; } int getSize() { return size; } void printALL() { cout<<len<<":"<<size<<endl; for(int i=0; i<size; ++i) cout<<data[i].f<<" "; cout<<endl; cout<<"********************"<<endl; }};struct A{ int f; public: A(int r):f(r){} A() { f =1; }};int main(){ myVector<A> v; v.push_back(A(2)); v.push_back(A(3)); v.push_back(A(4)); v.push_back(A(5)); v.push_back(A(6)); //node* head = buildTree(); //cout<<i<<"q"; //system("pause"); return 0;}