dune-common 2.9.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
Dune::ContainerWrapperIterator< CW, T, R > Class Template Reference

Iterator class for sparse vector-like containers. More...

#include <dune/common/diagonalmatrix.hh>

Inheritance diagram for Dune::ContainerWrapperIterator< CW, T, R >:
Inheritance graph

Public Types

using iterator_category = std::bidirectional_iterator_tag
 
using value_type = typename std::remove_const< T >::type
 
using difference_type = int
 
using pointer = T *
 
using reference = R
 
typedef ContainerWrapperIterator< CW, T, R > DerivedType
 The type of derived iterator.
 
typedef T Value
 The type of value accessed through the iterator.
 
typedef T * Pointer
 The pointer to the Value.
 
typedef int DifferenceType
 The type of the difference between two positions.
 
typedef R Reference
 The type of the reference to the values accessed.
 

Public Member Functions

 ContainerWrapperIterator ()
 
 ContainerWrapperIterator (CW containerWrapper, int position)
 
template<class OtherContainerWrapperIteratorType >
 ContainerWrapperIterator (OtherContainerWrapperIteratorType &other)
 
 ContainerWrapperIterator (const MyType &other)
 
 ContainerWrapperIterator (const MyConstType &other)
 
template<class OtherContainerWrapperIteratorType >
ContainerWrapperIteratoroperator= (OtherContainerWrapperIteratorType &other)
 
T * operator-> () const
 
bool equals (const MyType &other) const
 
bool equals (const MyConstType &other) const
 
dereference () const
 
void increment ()
 
void decrement ()
 
elementAt (int i) const
 
void advance (int n)
 
template<class OtherContainerWrapperIteratorType >
std::ptrdiff_t distanceTo (OtherContainerWrapperIteratorType &other) const
 
std::ptrdiff_t index () const
 
Reference operator* () const
 Dereferencing operator.
 
DerivedTypeoperator++ ()
 Preincrement operator.
 
DerivedType operator++ (int)
 Postincrement operator.
 
DerivedTypeoperator-- ()
 Preincrement operator.
 
DerivedType operator-- (int)
 Postincrement operator.
 

Detailed Description

template<class CW, class T, class R>
class Dune::ContainerWrapperIterator< CW, T, R >

Iterator class for sparse vector-like containers.

This class provides an iterator for sparse vector like containers. It contains a ContainerWrapper that must provide the translation from the position in the underlying container to the index in the sparse container.

The ContainerWrapper must be default and copy-constructable. Furthermore it must provide the methods:

bool identical(other) - check if this is identical to other (same container, not only equal) T* pointer(position) - get pointer to data at position in underlying container size_t realIndex(position) - get index in sparse container for position in underlying container

Notice that the iterator stores a ContainerWrapper. This allows one to use proxy classes as underlying container and as returned reference type.

Template Parameters
CWThe container wrapper class
TThe contained type
RThe reference type returned by dereference

Member Typedef Documentation

◆ DerivedType

typedef ContainerWrapperIterator< CW, T, R > Dune::BidirectionalIteratorFacade< ContainerWrapperIterator< CW, T, R > , T , R, int >::DerivedType
inherited

The type of derived iterator.

The iterator has to define following functions have to be present:

// Access the value referred to.
// Compare for equality with j
bool equals(j);
// position the iterator at the next element.
void increment()
// position the iterator at the previous element.
void decrement()
void increment()
Definition diagonalmatrix.hh:1067
R dereference() const
Definition diagonalmatrix.hh:1062
void decrement()
Definition diagonalmatrix.hh:1073
bool equals(const MyType &other) const
Definition diagonalmatrix.hh:1052
R Reference
The type of the reference to the values accessed.
Definition iteratorfacades.hh:329

For an elaborate explanation see the STL Documentation

◆ difference_type

using Dune::BidirectionalIteratorFacade< ContainerWrapperIterator< CW, T, R > , T , R, int >::difference_type = int
inherited

◆ DifferenceType

typedef int Dune::BidirectionalIteratorFacade< ContainerWrapperIterator< CW, T, R > , T , R, int >::DifferenceType
inherited

The type of the difference between two positions.

◆ iterator_category

using Dune::BidirectionalIteratorFacade< ContainerWrapperIterator< CW, T, R > , T , R, int >::iterator_category = std::bidirectional_iterator_tag
inherited

◆ pointer

using Dune::BidirectionalIteratorFacade< ContainerWrapperIterator< CW, T, R > , T , R, int >::pointer = T *
inherited

◆ Pointer

typedef T * Dune::BidirectionalIteratorFacade< ContainerWrapperIterator< CW, T, R > , T , R, int >::Pointer
inherited

The pointer to the Value.

◆ reference

using Dune::BidirectionalIteratorFacade< ContainerWrapperIterator< CW, T, R > , T , R, int >::reference = R
inherited

◆ Reference

typedef R Dune::BidirectionalIteratorFacade< ContainerWrapperIterator< CW, T, R > , T , R, int >::Reference
inherited

The type of the reference to the values accessed.

◆ Value

typedef T Dune::BidirectionalIteratorFacade< ContainerWrapperIterator< CW, T, R > , T , R, int >::Value
inherited

The type of value accessed through the iterator.

◆ value_type

using Dune::BidirectionalIteratorFacade< ContainerWrapperIterator< CW, T, R > , T , R, int >::value_type = typename std::remove_const<T >::type
inherited

Constructor & Destructor Documentation

◆ ContainerWrapperIterator()

template<class CW , class T , class R >
Dune::ContainerWrapperIterator< CW, T, R >::ContainerWrapperIterator ( const MyConstType other)
inline

Member Function Documentation

◆ equals()

template<class CW , class T , class R >
bool Dune::ContainerWrapperIterator< CW, T, R >::equals ( const MyConstType other) const
inline

◆ operator*()

Reference Dune::BidirectionalIteratorFacade< ContainerWrapperIterator< CW, T, R > , T , R, int >::operator* ( ) const
inlineinherited

Dereferencing operator.

◆ operator++() [1/2]

DerivedType & Dune::BidirectionalIteratorFacade< ContainerWrapperIterator< CW, T, R > , T , R, int >::operator++ ( )
inlineinherited

Preincrement operator.

◆ operator++() [2/2]

DerivedType Dune::BidirectionalIteratorFacade< ContainerWrapperIterator< CW, T, R > , T , R, int >::operator++ ( int  )
inlineinherited

Postincrement operator.

◆ operator--() [1/2]

DerivedType & Dune::BidirectionalIteratorFacade< ContainerWrapperIterator< CW, T, R > , T , R, int >::operator-- ( )
inlineinherited

Preincrement operator.

◆ operator--() [2/2]

DerivedType Dune::BidirectionalIteratorFacade< ContainerWrapperIterator< CW, T, R > , T , R, int >::operator-- ( int  )
inlineinherited

Postincrement operator.


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