An exploration of the behaviour of the various C++ STL vector templates