Project one for the course Engineering Programming Languages.
The vector template data structure provides random access and amortized contant append operation at front and back. It uses a circular pointer strategy and amortized doubling stragegy. Moving semantics are used for constructor, assignment operator, push_back and push_front methods.