C++ implementation data structure