STL style graph library