Boost logo

Boost :

From: hermann_at_[hidden]
Date: 2024-08-05 20:37:24


I looked at runtime statements here:
https://www.boost.org/doc/libs/1_85_0/libs/graph/doc/using_adjacency_list.html

Fore remove_edge() there is no O(1) option listed.

On the other hand in Boost graph code I see this O(1) remove_edge()
in boost/graph/detail/adjacency_list.hpp:

template < class Config > struct directed_edges_helper
{
...
     // O(1)
     inline void remove_edge(typename Config::out_edge_iterator iter)
     { std::cerr << "foobar" << std::endl;
         typedef typename Config::graph_type graph_type;
         graph_type& g = static_cast< graph_type& >(*this);
         typename Config::edge_descriptor e = *iter;
         typename Config::OutEdgeList& el = g.out_edge_list(source(e,
g));
         el.erase(iter.base());
     }
};

So my questions is for which graph and how I can make use of that O(1)
function to remove an edge. It seems to be for directed graph only.
While I need it for undirected graph, being able to use that O(1)
function for directed graph would be a first step.

Regards,

Hermann Stamm-Wilbrandt.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk