8 #ifndef ADV_EDGE_ITERS_HPP
9 #define ADV_EDGE_ITERS_HPP
11 #include "utils/graph_typedefs.hpp"
15 using namespace predicates;
18 template<
class Graph,
class Predicate = TruePredicate<Edge<Graph> >,
class EdgeIt = OEdgeIter<Graph> >
29 while(is_valid() && !pred(*payload)) ++payload;
36 const EdgeIt& _payload,
39 g(_g), pred(_pred), payload(_payload), end(_end)
45 const std::pair<EdgeIt, EdgeIt>& range,
47 g(_g), pred(_pred), payload(range.first), end(range.second)
53 g(_orig.g), pred(_orig.pred), payload(_orig.payload), end(_orig.end)
59 return payload != end;
94 return (payload == it.payload);
100 payload = range.first;
bool operator==(const Predicated_EdgeIter< Graph, Predicate > &it) const
check against another EdgeIter
Definition: adv_edge_iters.hpp:92
Predicated_EdgeIter< Graph, Predicate, EdgeIt > & operator=(const std::pair< EdgeIt, EdgeIt > &range)
assign from a pair of iterators
Definition: adv_edge_iters.hpp:98
Definition: read_adj_list.hpp:22
prototype predicate
Definition: predicates.hpp:14
Predicated_EdgeIter(const Graph &_g, const std::pair< EdgeIt, EdgeIt > &range, const Predicate &_pred=Predicate())
constructor using an iterator range as given by boost::edges() for example
Definition: adv_edge_iters.hpp:44
Predicated_EdgeIter(const Predicated_EdgeIter< Graph, EdgeIt, Predicate > &_orig)
copy constructor
Definition: adv_edge_iters.hpp:52
Predicated_EdgeIter & operator++()
increment operator
Definition: adv_edge_iters.hpp:75
an edge iterator that skips over all edges for which the predicate evaluates to false ...
Definition: adv_edge_iters.hpp:19
const Edge< Graph > operator*() const
dereference operator, simply dereferences the internal boost iterator
Definition: adv_edge_iters.hpp:69
bool is_valid() const
return true iff the iterator is not "past-the-end"
Definition: adv_edge_iters.hpp:57
Predicated_EdgeIter(const Graph &_g, const EdgeIt &_payload, const EdgeIt &_end, const Predicate &_pred=Predicate())
constructor initializing all data members
Definition: adv_edge_iters.hpp:35
Predicated_EdgeIter operator++(int)
post-increment
Definition: adv_edge_iters.hpp:84