data structure in Cpp