STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
List of all members | Public Member Functions | Public Types | Friends
stapl::sequential::edge_iterator_adaptor< VertexIterator > Class Template Reference

Class to provide an adaptor for the edge iterator.An edge iterator allows traversal of all (out)edges in the graph. It does this by iterating over all adjacent edges of one vertex, moves to the next vertex and so on. There is no guaranteed order of edge traversal. In undirected graphs only one edge of a pair of sibling edges will be traversed. More...

Public Member Functions

 edge_iterator_adaptor (edge_iterator_adaptor const &other, bool is_directed)
 Constructor used by the UG class to signal the fact that the iterator needs to skip sibling edges. E.g., if there is an edge from 1->2 the edge iterator will not report the edge from 2->1.
 
 edge_iterator_adaptor (n_edge_iterator_type iterator, VertexIterator b, VertexIterator c, VertexIterator e, bool is_directed=true)
 Constructs an edge iterator based on the specified iterators. More...
 
template<class Other >
 edge_iterator_adaptor (edge_iterator_adaptor< Other > const &other)
 
void increment ()
 Increments the iterator, skipping over vertices with no edges, and skipping over siblings-edges (where target < source) for undirected graphs.
 
void decrement ()
 Increments the iterator, skipping over vertices with no edges, and skipping over siblings-edges (where target < source) for undirected graphs.
 
void advance (typename base_t::difference_type n)
 Advances the iterator by the specified number of steps. Used to provide random-access behavior.
 
value_type operator* () const
 
n_edge_iterator_type operator-> ()
 

Public Types

typedef n_edge_iterator_type::edge_descriptor edge_descriptor
 
typedef n_edge_iterator_type::property_type property_type
 
typedef n_edge_iterator_type::property_reference property_reference
 
typedef edge_descriptor::vertex_descriptor vertex_descriptor
 
typedef base_t::value_type value_type
 

Friends

template<class >
class edge_iterator_adaptor
 

Detailed Description

template<typename VertexIterator>
class stapl::sequential::edge_iterator_adaptor< VertexIterator >

Class to provide an adaptor for the edge iterator.

An edge iterator allows traversal of all (out)edges in the graph. It does this by iterating over all adjacent edges of one vertex, moves to the next vertex and so on. There is no guaranteed order of edge traversal. In undirected graphs only one edge of a pair of sibling edges will be traversed.

Template Parameters
VertexIteratorThe type of the vertex iterator.

Constructor & Destructor Documentation

◆ edge_iterator_adaptor()

template<typename VertexIterator >
stapl::sequential::edge_iterator_adaptor< VertexIterator >::edge_iterator_adaptor ( n_edge_iterator_type  iterator,
VertexIterator  b,
VertexIterator  c,
VertexIterator  e,
bool  is_directed = true 
)

Constructs an edge iterator based on the specified iterators.

Parameters
iteratorThe native edge iterator.
bA vertex iterator to the beginning of the graph.
cA vertex iterator to the current vertex whose edges are being currently traversed.
eA vertex iterator to the end of the graph.
is_directedTrue for directed graph, false for undirected graph.

The documentation for this class was generated from the following file: