Loading...
Searching...
No Matches
Dune::ContainerWrapperIterator< CW, T, R > Class Template Reference
Common » Dense Matrix and Vector Template Library

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

`#include <dune/common/diagonalmatrix.hh>`

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

## Public Types

using | iterator_category
using | value_type
using | difference_type
using | pointer
using | reference
typedef T | 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>
ContainerWrapperIterator & | operator= (OtherContainerWrapperIteratorType &other)
T * | operator-> () const
bool | equals (const MyType &other) const
bool | equals (const MyConstType &other) const
R | dereference () const
void | increment ()
void | decrement ()
R | elementAt (int i) const
void | advance (int n)
template<class OtherContainerWrapperIteratorType>
std::ptrdiff_t | distanceTo (OtherContainerWrapperIteratorType &other) const
std::ptrdiff_t | index () const
constexpr Reference | operator* () const
| Dereferencing operator.
constexpr DerivedType & | operator++ ()
| Preincrement operator.
constexpr DerivedType & | operator-- ()
| Preincrement operator.

## Friends

class | ContainerWrapperIterator< CW, typename mutable_reference< T >::type, typename mutable_reference< R >::type >
class | ContainerWrapperIterator< CW, typename const_reference< T >::type, typename const_reference< R >::type >

## 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

  CW | The container wrapper class
  T | The contained type
  R | The reference type returned by dereference

## Member Typedef Documentation

## DerivedType

typedef T Dune::BidirectionalIteratorFacade< T, 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.
Reference dereference() const;
// 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()
Dune::ContainerWrapperIterator::increment
void increment()
Definition diagonalmatrix.hh:1147
Dune::ContainerWrapperIterator::dereference
R dereference() const
Definition diagonalmatrix.hh:1142
Dune::ContainerWrapperIterator::decrement
void decrement()
Definition diagonalmatrix.hh:1153
Dune::ContainerWrapperIterator::equals
bool equals(const MyType &other) const
Definition diagonalmatrix.hh:1132
Dune::BidirectionalIteratorFacade< ContainerWrapperIterator< CW, T, R >, T, R, int >::Reference
R Reference
Definition iteratorfacades.hh:330

For an elaborate explanation see the STL Documentation

## difference_type

using Dune::BidirectionalIteratorFacade< T, T, R, int >::difference_type

inherited

## DifferenceType

typedef int Dune::BidirectionalIteratorFacade< T, T, R, int >::DifferenceType

inherited

The type of the difference between two positions.

## iterator_category

using Dune::BidirectionalIteratorFacade< T, T, R, int >::iterator_category

inherited

## Pointer

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

inherited

The pointer to the Value.

## pointer

using Dune::BidirectionalIteratorFacade< T, T, R, int >::pointer

inherited

## Reference

typedef R Dune::BidirectionalIteratorFacade< T, T, R, int >::Reference

inherited

The type of the reference to the values accessed.

## reference

using Dune::BidirectionalIteratorFacade< T, T, R, int >::reference

inherited

## Value

typedef T Dune::BidirectionalIteratorFacade< T, T, R, int >::Value

inherited

The type of value accessed through the iterator.

## value_type

using Dune::BidirectionalIteratorFacade< T, T, R, int >::value_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< T, T, R, int >::operator* | ( |  | ) | const

inline constexpr inherited

Dereferencing operator.

## operator++()

DerivedType & Dune::BidirectionalIteratorFacade< T, T, R, int >::operator++ | ( |  | ) |

inline constexpr inherited

Preincrement operator.

## operator--()

DerivedType & Dune::BidirectionalIteratorFacade< T, T, R, int >::operator-- | ( |  | ) |

inline constexpr inherited

Preincrement operator.

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

- diagonalmatrix.hh