README Container Design, Step 7 ---------------------------------------------------------------------------- Here we have remodeled memory allocation and deallocation, to make it more efficient, by avoiding initialization of yet unused storage, and logically more correct, by also destroying elements when removed. To accomplish this we have replaced the array of T allocation with a new expression like, 'new T[n]', with a call to the global memory allocation function operator new, '::operator new(sizeof(T)*n)'. In this way the T default constructor will not be invoked, instead we invoke the copy/move constructor when inserting a T object into the container, using placement new. When removing an element we explicitly call the destructor for that element, and when the container object is to seize to exist, we first destroy all stored elements, and then deallocate the memory using the global memory deallocation function ::operator delete(). ----------------------------------------------------------------------------