C++ directed graph