Hi Stephan,
What you've posted is not a complete program (it is missing at least the
#include's). Please post a complete program.
Thanks,
Jeremy
P.S. Sorry to be pedantic about this, but I've wasted a lot of time in the
past trying to reconstruct complete programs from incomplete programs.
On Wed, 6 Aug 2003, Stephan [iso-8859-1] Höfer wrote:
yg-boo> the original graph looks like that
yg-boo>
yg-boo> 0--1--2--3
yg-boo> | | | |
yg-boo> 7--6--5--4
yg-boo>
yg-boo> the subgraph looks like that
yg-boo> 0--1--2
yg-boo> | |
yg-boo> 6--5
yg-boo>
yg-boo> typedef boost::property boost::property< boost::vertex_predecessor_t, vertex_descriptor > >
yg-boo> VertexProperty;
yg-boo>
yg-boo> typedef boost::property boost::property boost::property > > EdgeProperty;
yg-boo>
yg-boo> typedef boost::subgraph< boost::adjacency_list boost::undirectedS,
yg-boo> VertexProperty, EdgeProperty > > Graph;
yg-boo>
yg-boo> void main()
yg-boo> {
yg-boo> Graph g(7);
yg-boo>
yg-boo> boost::property_map::type weightmap =
yg-boo> boost::get(boost::edge_weight, g);
yg-boo> Edge e; bool inserted;
yg-boo>
yg-boo> boost::tie(e, inserted) = boost::add_edge(0, 1, g); weightmap[e] = 1;
yg-boo> boost::tie(e, inserted) = boost::add_edge(1, 2, g); weightmap[e] = 1;
yg-boo> boost::tie(e, inserted) = boost::add_edge(2, 3, g); weightmap[e] = 1;
yg-boo> boost::tie(e, inserted) = boost::add_edge(3, 4, g); weightmap[e] = 1;
yg-boo> boost::tie(e, inserted) = boost::add_edge(4, 5, g); weightmap[e] = 1;
yg-boo> boost::tie(e, inserted) = boost::add_edge(5, 2, g); weightmap[e] = 1;
yg-boo> boost::tie(e, inserted) = boost::add_edge(5, 6, g); weightmap[e] = 1;
yg-boo> boost::tie(e, inserted) = boost::add_edge(6, 1, g); weightmap[e] = 1;
yg-boo> boost::tie(e, inserted) = boost::add_edge(6, 7, g); weightmap[e] = 1;
yg-boo> boost::tie(e, inserted) = boost::add_edge(7, 0, g); weightmap[e] = 1;
yg-boo>
yg-boo> Graph& tSubGraph = g.create_subgraph();
yg-boo>
yg-boo> add_vertex(0,tSubGraph); add_vertex(1,tSubGraph); add_vertex(2,tSubGraph);
yg-boo> add_vertex(5,tSubGraph); add_vertex(6,tSubGraph);
yg-boo>
yg-boo> std::vector < boost::graph_traits < Graph >::vertex_descriptor>
yg-boo> p(boost::num_vertices(tSubGraph));
yg-boo> boost::prim_minimum_spanning_tree(tSubGraph, &p[0]);
yg-boo> }
yg-boo>
yg-boo> The crash happens after having added for instance the 6th point of the Graph
yg-boo> g to the subgraph. Before it worked.
yg-boo>
----------------------------------------------------------------------
Jeremy Siek http://php.indiana.edu/~jsiek/
Ph.D. Student, Indiana Univ. B'ton email: jsiek@osl.iu.edu
C++ Booster (http://www.boost.org) office phone: (812) 855-3608
----------------------------------------------------------------------