dune-istl  2.5-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. More...
 
typedef const std::remove_const< C >::type ConstContainer
 The constant type of the container type. More...
 
typedef std::conditional< std::is_same< C, typename std::remove_const< C >::type >::value &&C::mutableMatrix, typename M::block_type, const typename M::block_type >::type WeightType
 

Public Member Functions

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

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, typename std::remove_const<C>::type>::value && C::mutableMatrix, typename M::block_type, const typename M::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: