ROSE 0.11.145.192
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 740 of file Graph.h.

#include <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.
 
bool isEmpty () const
 True if iterator doesn't point to anything.
 
Derived & operator++ ()
 Increment.
 
Derived operator++ (int)
 Increment.
 
Derived & operator-- ()
 Decrement.
 
Derived operator-- (int)
 Decrement.
 
template<class OtherIter >
bool operator== (const OtherIter &other) const
 Equality predicate.
 
template<class OtherIter >
bool operator!= (const OtherIter &other) const
 Equality predicate.
 

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 Typedef Documentation

◆ iterator_category

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 >
using Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::iterator_category = std::bidirectional_iterator_tag

Definition at line 743 of file Graph.h.

◆ value_type

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 >
using Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::value_type = Value

Definition at line 744 of file Graph.h.

◆ difference_type

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 >
using Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::difference_type = std::ptrdiff_t

Definition at line 745 of file Graph.h.

◆ pointer

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 >
using Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::pointer = Value*

Definition at line 746 of file Graph.h.

◆ reference

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 >
using Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::reference = Value&

Definition at line 747 of file Graph.h.

Constructor & Destructor Documentation

◆ EdgeBaseIterator() [1/5]

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 >
Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::EdgeBaseIterator ( )
inlineprotected

Definition at line 755 of file Graph.h.

◆ EdgeBaseIterator() [2/5]

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 >
Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::EdgeBaseIterator ( const EdgeBaseIterator< Derived, Value, Node, BaseIter, VList > &  other)
inlineprotected

Definition at line 756 of file Graph.h.

◆ EdgeBaseIterator() [3/5]

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 >
Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::EdgeBaseIterator ( const BaseIter &  iter)
inlineprotected

Definition at line 757 of file Graph.h.

◆ EdgeBaseIterator() [4/5]

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 >
Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::EdgeBaseIterator ( EdgePhase  phase,
VList *  vlist 
)
inlineprotected

Definition at line 758 of file Graph.h.

◆ EdgeBaseIterator() [5/5]

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 BaseIter2 >
Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::EdgeBaseIterator ( EdgePhase  phase,
const BaseIter2 &  iter,
VList *  vlist 
)
inlineprotected

Definition at line 759 of file Graph.h.

Member Function Documentation

◆ dereference()

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 >
Node & Sawyer::Container::Graph< V, E, VKey, EKey, Alloc >::EdgeBaseIterator< Derived, Value, Node, BaseIter, VList >::dereference ( ) const
inlineprotected

Definition at line 762 of file Graph.h.

◆ operator=()

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 772 of file Graph.h.

◆ operator++() [1/2]

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 785 of file Graph.h.

◆ operator++() [2/2]

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 793 of file Graph.h.

◆ operator--() [1/2]

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 806 of file Graph.h.

◆ operator--() [2/2]

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 814 of file Graph.h.

◆ operator==()

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 829 of file Graph.h.

◆ operator!=()

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 845 of file Graph.h.

◆ isEmpty()

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 851 of file Graph.h.


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