A C++ template library with different Data Structures