Da: Michael Olea <oleaj@sbcglobal.net>
A: boost-users@lists.boost.org
Inviato: Martedì 17 febbraio 2009, 22:26:20
Oggetto: Re: [Boost-users] [BGL] Remove edge
On Feb 16, 2009, at 11:37 PM, Gianni Loiacono wrote:
> Hi Mr. Michael Olea,
> thanks for
the replay, for the example code and for the help :-)
> I have tested your code and it works perfectly.
> But I have a problem, my graph isn't static but dynamic.
> In fact, the arcs weights are assigned dynamicaly and I don't understand how to adapt your code to my code.
> Can you help me?
> Sorry for my poor english,
> Best regards.
Ciao, signore Gianni Loiacono.
It does not matter that the arc weights are assigned dynamically; what matters is that when deleteEdges is called they are stored in a property map that you have called "capacityCut". So, using the "Remover" class from ex_remove_if.cpp, you could write deleteEdges something like this:
void deleteEdges()
{
Remover< property_map<Graph, edge_capacity_t>::type > r(capacityCut, 10);
remove_edge_if(r, g);
}
However, if removing edges is a frequent operation, you might get
better performance if you use an std::list rather than an std::vector to store edges. That is, replace this statement:
typedef adjacency_list<vecS, vecS, undirectedS,
NodoProperty, ArcoProperty> Graph;
with this statement:
typedef adjacency_list<listS, vecS, undirectedS,
NodoProperty, ArcoProperty> Graph;
Good luck,
-- Michael
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.orghttp://lists.boost.org/mailman/listinfo.cgi/boost-users