Data Structure C++ implementation C++/Template