I am trying to use BGL to model a directed multigraph, but every time I
try to remove just one of the edges (u,v), it removes all of the edges
from u to v.
My graph definition is:
typedef adjacency_list graphdata;
where VertexProperty and EdgeProperty are properties I've defined.
Everything else seems to work: I have can add parallel edges, find the
edge I want to remove based on the EdgeProperty, filter the graph for
topological sorting, check for existing edges, etc.
In the following, e is of type
graph_traits<graphdata>::edge_descriptor, and g is the graph of type
graphdata (defined above):
std::cout << "about to remove edge\n";
DumpInfo();
remove_edge(e, g);
std::cout << "removed edge\n";
DumpInfo();
Here is some sample output:
about to remove edge
vertex: 0
out-edges:
in-edges: (1,0) (1,0)
adjacent vertices:
vertex: 1
out-edges: (1,0) (1,0)
in-edges:
adjacent vertices: 0 0
removed edge
vertex: 0
out-edges:
in-edges:
adjacent vertices:
vertex: 1
out-edges:
in-edges:
adjacent vertices:
Note that there were two edges present before the call to remove_edge,
but only one after.
What am I doing wrong?
I'm using version 1.31, if that helps.
Thanks,
Nicholas Burlett
nrb23@cornell.edu