
I'm not sure, but after playing with this for a while, I think the vertex and edge objects (vertex_descriptor, edge_descriptors) used by the graphs are opaque handles: you can't get at their contents directly. To attach properties to the vertices or graph I did the following: -> In the adjacency list template declaration, specify a vertex property class and an edge property class. -> This class is some version of a boost "property" class. -> Before you define this class you use a macro to define a string identifying it. -> To access your data you call get(id_string, Graph), which returns a "property map" class. The property map class seems to be a boost way of doing things. -> Then you get your data from the map, using either a different verstion of get or operator []. So what I did ended up doing to get data was something like the following, assuming I had a vertex_descriptor v, say from an add_vertex: int iColor = get(vertex_color, MyGraphObject)[v]; Part of what I ended up doing was: //In properties.hpp I added: BOOST_DEF_PROPERTY(vertex, custom); BOOST_DEF_PROPERTY(edge, type); BOOST_DEF_PROPERTY(edge, custom); //Then I defined: typedef property < edge_name_t, int, property < edge_type_t, eEdgeTypes > > EProps ; //This gives edges two properies: an int accessed through edge_name // and enumerated eEdgeTypes accessed through edge_type class VertexProperties { public: char m_cName; int m_iDFSOrder; int m_iRootIdx; int m_iComponent; int m_iComponentHeight; bool m_bSelfLoop; VertexProperties(){memset(this, 0, sizeof(*this));} }; typedef property < vertex_custom_t, VertexProperties, property < vertex_index_t, int > > VProps; //That gives each vertex a VertexProperties class accessible through //vertex_custom, and an integer index property accessible through //vertex_index. //finally here's the graph definition: typedef adjacency_list< listS,vecS,directedS,VProps,EProps > Graph; //to access my custom properties I would do something like this: Graph g; vertex_descriptor v; get(vertex_custom, g)[v].m_iDFSOrder = iNextDFSOrder++; Gloomy PS: I got all my code working --- and then the MS VC++ compiler stopped working, giving me internal errors. On Windows CE (Platform Builder) I couldn't get it working at all. --- In Boost-Users@y..., "¹Ú±â¼ö" <yg-boost-users@m...> wrote:
for example,
class Node { public: int m_id; };
class Edge { public: int from_node_id; int to_node_id; };
How can I use this class to make graph? many examples show only integer id graph..
thanks in advance
---------------------------------------- Ki-Soo, Park HP: 82-11-9040-4957 e-mail: park@e... wfms123@h...