My attempt at writing my own versions of C++ STL containers