ROSE  0.11.145.0
Public Types | Public Member Functions | Protected Member Functions | List of all members
Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList > Class Template Reference

Description

template<class V = Nothing, class E = Nothing, class VKey = GraphVertexNoKey<V>, class EKey = GraphEdgeNoKey<E>, class Alloc = DefaultAllocator>
template<class Derived, class Value, class Node, class BaseIter, class VList>
class Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >

Base class for edge iterators.

This isn't normally used directly by users except for its public methods inherited by subclasses.

Definition at line 731 of file Graph.h.

#include <util/Sawyer/Graph.h>

Inheritance diagram for Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >:
Inheritance graph
[legend]

Public Types

using iterator_category = std::bidirectional_iterator_tag
 
using value_type = Value
 
using difference_type = std::ptrdiff_t
 
using pointer = Value *
 
using reference = Value &
 

Public Member Functions

Derived & operator= (const Derived &other)
 Assignment. More...
 
bool isEmpty () const
 True if iterator doesn't point to anything. More...
 
Derived & operator++ ()
 Increment. More...
 
Derived operator++ (int)
 Increment. More...
 
Derived & operator-- ()
 Decrement. More...
 
Derived operator-- (int)
 Decrement. More...
 
template<class OtherIter >
bool operator== (const OtherIter &other) const
 Equality predicate. More...
 
template<class OtherIter >
bool operator!= (const OtherIter &other) const
 Equality predicate. More...
 

Protected Member Functions

 EdgeBaseIterator (const EdgeBaseIterator &other)
 
 EdgeBaseIterator (const BaseIter &iter)
 
 EdgeBaseIterator (EdgePhase phase, VList *vlist)
 
template<class BaseIter2 >
 EdgeBaseIterator (EdgePhase phase, const BaseIter2 &iter, VList *vlist)
 
Node & dereference () const
 

Member Function Documentation

template<class V = Nothing, class E = Nothing, class VKey = GraphVertexNoKey<V>, class EKey = GraphEdgeNoKey<E>, class Alloc = DefaultAllocator>
template<class Derived, class Value, class Node, class BaseIter, class VList>
Derived& Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::operator= ( const Derived &  other)
inline

Assignment.

Definition at line 763 of file Graph.h.

template<class V = Nothing, class E = Nothing, class VKey = GraphVertexNoKey<V>, class EKey = GraphEdgeNoKey<E>, class Alloc = DefaultAllocator>
template<class Derived, class Value, class Node, class BaseIter, class VList>
Derived& Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::operator++ ( )
inline

Increment.

Causes this iterator to advance to the next node of the edge list. This method should not be invoked on an iterator that points to the end of the list.

Definition at line 776 of file Graph.h.

template<class V = Nothing, class E = Nothing, class VKey = GraphVertexNoKey<V>, class EKey = GraphEdgeNoKey<E>, class Alloc = DefaultAllocator>
template<class Derived, class Value, class Node, class BaseIter, class VList>
Derived Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::operator++ ( int  )
inline

Increment.

Causes this iterator to advance to the next node of the edge list. This method should not be invoked on an iterator that points to the end of the list.

Definition at line 784 of file Graph.h.

template<class V = Nothing, class E = Nothing, class VKey = GraphVertexNoKey<V>, class EKey = GraphEdgeNoKey<E>, class Alloc = DefaultAllocator>
template<class Derived, class Value, class Node, class BaseIter, class VList>
Derived& Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::operator-- ( )
inline

Decrement.

Causes this iterator to advance to the previous node of the edge list. This method should not be invoked on an iterator that points to the beginning of the list.

Definition at line 797 of file Graph.h.

template<class V = Nothing, class E = Nothing, class VKey = GraphVertexNoKey<V>, class EKey = GraphEdgeNoKey<E>, class Alloc = DefaultAllocator>
template<class Derived, class Value, class Node, class BaseIter, class VList>
Derived Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::operator-- ( int  )
inline

Decrement.

Causes this iterator to advance to the previous node of the edge list. This method should not be invoked on an iterator that points to the beginning of the list.

Definition at line 805 of file Graph.h.

template<class V = Nothing, class E = Nothing, class VKey = GraphVertexNoKey<V>, class EKey = GraphEdgeNoKey<E>, class Alloc = DefaultAllocator>
template<class Derived, class Value, class Node, class BaseIter, class VList>
template<class OtherIter >
bool Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::operator== ( const OtherIter &  other) const
inline

Equality predicate.

Two iterators are equal if they point to the same node of an edge list, and unequal otherwise. End iterators point to a virtual node one past the end of the list and are unique to each list or sublist. One minor exception to this rule is that end iterators for the in-edge list and out-edge list of the same vertex are considered to be equal.

Definition at line 820 of file Graph.h.

template<class V = Nothing, class E = Nothing, class VKey = GraphVertexNoKey<V>, class EKey = GraphEdgeNoKey<E>, class Alloc = DefaultAllocator>
template<class Derived, class Value, class Node, class BaseIter, class VList>
template<class OtherIter >
bool Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::operator!= ( const OtherIter &  other) const
inline

Equality predicate.

Two iterators are equal if they point to the same node of an edge list, and unequal otherwise. End iterators point to a virtual node one past the end of the list and are unique to each list or sublist. One minor exception to this rule is that end iterators for the in-edge list and out-edge list of the same vertex are considered to be equal.

Definition at line 836 of file Graph.h.

template<class V = Nothing, class E = Nothing, class VKey = GraphVertexNoKey<V>, class EKey = GraphEdgeNoKey<E>, class Alloc = DefaultAllocator>
template<class Derived, class Value, class Node, class BaseIter, class VList>
bool Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::isEmpty ( ) const
inline

True if iterator doesn't point to anything.

Definition at line 842 of file Graph.h.


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