$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Loïc Joly (loic.joly_at_[hidden])
Date: 2006-07-11 11:19:55
Hello,
I'm new to the graph library, but I'm missing some algorithms that I 
believe are quite low level, and that I expected to find.
For instance, I'd like to be able to remove nodes from a graph that meet 
some criterion. The closest I could find to remove_if was :
- Iterate on each node manually:
for (tie(vi, viend) = boost::vertices(myGraph) ;
        vi != viend;
        ++vi)
{
        if (criterion(vi)
        {
                clear_vertex(*vi, myGraph);
                remove_vertex(*vi, myGraph);
        }
}
But I'm afraid of iterator invalidity
- Filter, copy, swap:
Graph tempGraph;
{
        filtered_graph<Graph, keep_all, Criterion> fg
                (myGraph, criterion);
        copy_graph(fg, tempGraph);
}
copy_graph(tempGraph, myGraph);
Will one of my attempts work ? Is there any other solution I missed ?
Best regards,
-- Loïc