dune-common 2.9.1
Loading...
Searching...
No Matches
Classes
GenericIterator

Generic Iterator class for writing stl conformant iterators for any container class with operator[]. More...

Collaboration diagram for GenericIterator:

Classes

class  Dune::GenericIterator< C, T, R, D, IteratorFacade >
 Generic class for stl-conforming iterators for container classes with operator[]. More...
 

Detailed Description

Generic Iterator class for writing stl conformant iterators for any container class with operator[].

Using this template class you can create an iterator and a const_iterator for any container class.

Imagine you have SimpleContainer and would like to have an iterator. All you have to do is provide operator[], begin() and end() (for const and for non-const).

template<class T>
class SimpleContainer{
public:
for(int i=0; i < 100; i++)
values_[i]=i;
}
return iterator(*this, 0);
}
return const_iterator(*this, 0);
}
return iterator(*this, 100);
}
return const_iterator(*this, 100);
}
T& operator[](int i){
return values_[i];
}
const T& operator[](int i) const{
return values_[i];
}
private:
T values_[100];
};
reference operator[](size_type i)
Get the element at specific position.
Definition arraylist.hh:491
iterator begin()
Get an iterator that is positioned at the first element.
Definition arraylist.hh:517
ArrayList()
Constructs an Array list with one chunk.
Definition arraylist.hh:457
iterator end()
Get a random access iterator positioned after the last element.
Definition arraylist.hh:529
ArrayListIterator< MemberType, N, A > iterator
A random access iterator.
Definition arraylist.hh:105
ConstArrayListIterator< MemberType, N, A > const_iterator
A constant random access iterator.
Definition arraylist.hh:110

See dune/common/test/iteratorfacestest.hh for details or Dune::QuadratureDefault in dune/quadrature/quadrature.hh for a real example.