Hi, I am try to walk through graph with edges that has properties defined as 'color' and 'weght' properties combination. But I don't uderstand how access 'color' property by correct way? Can anybody help to me?
Thanks in advance, - Petr ----------------------------------------------------------------------- #include <iostream> #include <boost/graph/adjacency_list.hpp> using namespace boost; using namespace std; typedef property<edge_color_t,int> Color; typedef property<edge_weight_t,int> Weight; // struct color_weight_t { // enum { num = 30000 }; // typedef edge_property_tag kind; // }; enum edge_cw_t { edge_cw }; namespace boost { template <> struct property_kind<edge_cw_t> { typedef edge_property_tag type; }; } // namespace boost int main( int, char * const * ) { typedef property<edge_cw_t,Color,Weight> EdgeProperty; typedef adjacency_list<vecS, vecS, directedS, no_property, EdgeProperty > graph_t; enum { One, Two, NVertices }; graph_t g( NVertices ); add_edge( NotConnected, Connected, EdgeProperty(0,1), g ); add_edge( Connected, NotConnected, EdgeProperty(0,1), g ); cout << "Walk through graph\n"; typedef graph_traits<graph_t>::vertex_descriptor vertex_t; vertex_t v = vertex( NotConnected, g ); typedef graph_traits<graph_t>::out_edge_iterator out_edge_iterator_t; typedef property_map<graph_t,edge_color_t>::type edge_color_map_t; typedef property_map<graph_t,edge_weight_t>::type edge_weight_map_t; edge_weight_map_t weight = get( edge_weight, g ); edge_color_map_t color = get( edge_color, g ); out_edge_iterator_t ei; out_edge_iterator_t eend; for ( tie(ei,eend) = out_edges(v,g); ei != eend; ++ei ) { cout << /* color[*ei] */ get(edge_cw, g, *ei ).m_value << ", " // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // How I can access color property with correct way? << weight[*ei] << " "; } cout << endl; return 0; } _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost