dune-istl
2.1.1
|
Iterator class for sparse vector-like containers. More...
#include <dune/istl/diagonalmatrix.hh>
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 |
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 > |
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 to use proxy classes as underlying container and as returned reference type.
CW | The container wrapper class |
T | The contained type |
R | The reference type returned by dereference |
Dune::ContainerWrapperIterator< CW, T, R >::ContainerWrapperIterator | ( | ) | [inline] |
Dune::ContainerWrapperIterator< CW, T, R >::ContainerWrapperIterator | ( | CW | containerWrapper, |
int | position | ||
) | [inline] |
Dune::ContainerWrapperIterator< CW, T, R >::ContainerWrapperIterator | ( | OtherContainerWrapperIteratorType & | other | ) | [inline] |
Dune::ContainerWrapperIterator< CW, T, R >::ContainerWrapperIterator | ( | const MyType & | other | ) | [inline] |
Dune::ContainerWrapperIterator< CW, T, R >::ContainerWrapperIterator | ( | const MyConstType & | other | ) | [inline] |
void Dune::ContainerWrapperIterator< CW, T, R >::advance | ( | int | n | ) | [inline] |
void Dune::ContainerWrapperIterator< CW, T, R >::decrement | ( | ) | [inline] |
R Dune::ContainerWrapperIterator< CW, T, R >::dereference | ( | ) | const [inline] |
std::ptrdiff_t Dune::ContainerWrapperIterator< CW, T, R >::distanceTo | ( | OtherContainerWrapperIteratorType & | other | ) | const [inline] |
R Dune::ContainerWrapperIterator< CW, T, R >::elementAt | ( | int | i | ) | const [inline] |
bool Dune::ContainerWrapperIterator< CW, T, R >::equals | ( | const MyType & | other | ) | const [inline] |
bool Dune::ContainerWrapperIterator< CW, T, R >::equals | ( | const MyConstType & | other | ) | const [inline] |
void Dune::ContainerWrapperIterator< CW, T, R >::increment | ( | ) | [inline] |
std::ptrdiff_t Dune::ContainerWrapperIterator< CW, T, R >::index | ( | ) | const [inline] |
T* Dune::ContainerWrapperIterator< CW, T, R >::operator-> | ( | ) | const [inline] |
ContainerWrapperIterator& Dune::ContainerWrapperIterator< CW, T, R >::operator= | ( | OtherContainerWrapperIteratorType & | other | ) | [inline] |
friend class ContainerWrapperIterator< CW, typename const_reference< T >::type, typename const_reference< R >::type > [friend] |
friend class ContainerWrapperIterator< CW, typename mutable_reference< T >::type, typename mutable_reference< R >::type > [friend] |