dune-istl 3.0-git
Public Types | Public Member Functions | List of all members
Dune::Amg::MatrixGraph< M >::VertexIteratorT< C > Class Template Reference

The vertex iterator type of the graph. More...

#include <dune/istl/paamg/graph.hh>

Public Types

enum  { isMutable = std::is_same<C, MutableContainer>::value }
 
typedef std::remove_const< C >::type MutableContainer
 The mutable type of the container type.
 
typedef const std::remove_const< C >::type ConstContainer
 The constant type of the container type.
 
typedef std::conditional< std::is_same< C, typenamestd::remove_const< C >::type >::value &&C::mutableMatrix, typenameM::block_type, consttypenameM::block_type >::type WeightType
 

Public Member Functions

 VertexIteratorT (C *graph, const VertexDescriptor &current)
 Constructor.
 
 VertexIteratorT (const VertexDescriptor &current)
 Constructor for the end iterator.
 
 VertexIteratorT (const VertexIteratorT< MutableContainer > &other)
 
VertexIteratorT< C > & operator++ ()
 Move to the next vertex.
 
bool operator!= (const VertexIteratorT< ConstContainer > &other) const
 Inequality operator.
 
bool operator== (const VertexIteratorT< ConstContainer > &other) const
 Equality operator.
 
bool operator!= (const VertexIteratorT< MutableContainer > &other) const
 Inequality operator.
 
bool operator== (const VertexIteratorT< MutableContainer > &other) const
 Equality operator.
 
WeightTypeweight () const
 Access the weight of the vertex.
 
const VertexDescriptoroperator* () const
 Get the descriptor of the current vertex.
 
EdgeIteratorT< C > begin () const
 Get an iterator over all edges starting at the current vertex.
 
EdgeIteratorT< C > end () const
 Get an iterator over all edges starting at the current vertex.
 

Detailed Description

template<class M>
template<class C>
class Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >

The vertex iterator type of the graph.

Member Typedef Documentation

◆ ConstContainer

template<class M >
template<class C >
typedef const std::remove_const<C>::type Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::ConstContainer

The constant type of the container type.

◆ MutableContainer

template<class M >
template<class C >
typedef std::remove_const<C>::type Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::MutableContainer

The mutable type of the container type.

◆ WeightType

template<class M >
template<class C >
typedef std::conditional<std::is_same<C,typenamestd::remove_const<C>::type>::value&&C::mutableMatrix,typenameM::block_type,consttypenameM::block_type>::type Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::WeightType

Member Enumeration Documentation

◆ anonymous enum

template<class M >
template<class C >
anonymous enum
Enumerator
isMutable 

whether C is mutable.

Constructor & Destructor Documentation

◆ VertexIteratorT() [1/3]

template<class M >
template<class C >
Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::VertexIteratorT ( C *  graph,
const VertexDescriptor current 
)
explicit

Constructor.

Parameters
graphThe graph we are a vertex iterator for.
currentThe current vertex to position on.

◆ VertexIteratorT() [2/3]

template<class M >
template<class C >
Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::VertexIteratorT ( const VertexDescriptor current)
explicit

Constructor for the end iterator.

only operator== or operator!= may be called safely on an iterator constructed this way.

Parameters
currentThe current vertex to position on.

◆ VertexIteratorT() [3/3]

template<class M >
template<class C >
Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::VertexIteratorT ( const VertexIteratorT< MutableContainer > &  other)

Member Function Documentation

◆ begin()

template<class M >
template<class C >
EdgeIteratorT< C > Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::begin ( ) const

Get an iterator over all edges starting at the current vertex.

Returns
Iterator position on the first edge to another vertex.

◆ end()

template<class M >
template<class C >
EdgeIteratorT< C > Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::end ( ) const

Get an iterator over all edges starting at the current vertex.

Returns
Iterator position on the first edge to another vertex.

◆ operator!=() [1/2]

template<class M >
template<class C >
bool Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::operator!= ( const VertexIteratorT< ConstContainer > &  other) const

Inequality operator.

◆ operator!=() [2/2]

template<class M >
template<class C >
bool Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::operator!= ( const VertexIteratorT< MutableContainer > &  other) const

Inequality operator.

◆ operator*()

template<class M >
template<class C >
const VertexDescriptor & Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::operator* ( ) const

Get the descriptor of the current vertex.

Returns
The index of the currently referenced vertex.

◆ operator++()

template<class M >
template<class C >
VertexIteratorT< C > & Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::operator++ ( )

Move to the next vertex.

Returns
This iterator positioned at the next vertex.

◆ operator==() [1/2]

template<class M >
template<class C >
bool Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::operator== ( const VertexIteratorT< ConstContainer > &  other) const

Equality operator.

◆ operator==() [2/2]

template<class M >
template<class C >
bool Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::operator== ( const VertexIteratorT< MutableContainer > &  other) const

Equality operator.

◆ weight()

template<class M >
template<class C >
WeightType & Dune::Amg::MatrixGraph< M >::VertexIteratorT< C >::weight ( ) const

Access the weight of the vertex.


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