latest version v1.9 - last update 10 Apr 2010 |
iterator type (allows read and write operations). More...
#include <ltiGenericVector.h>
Public Member Functions | |
iterator () | |
iterator (const iterator &other) | |
iterator & | operator++ () |
iterator | operator++ (int) |
iterator & | operator-- () |
iterator | operator-- (int) |
iterator & | operator+= (const int n) |
iterator & | operator-= (const int n) |
iterator | operator+ (const int n) |
iterator | operator- (const int n) |
bool | operator== (const iterator &other) const |
bool | operator!= (const iterator &other) const |
bool | operator< (const iterator &other) const |
bool | operator> (const iterator &other) const |
bool | operator<= (const iterator &other) const |
bool | operator>= (const iterator &other) const |
T & | operator* () |
T & | operator[] (const int i) |
iterator & | operator= (const iterator &other) |
Protected Member Functions | |
iterator (const int startPos, genericVector< T > *vct) | |
const int & | getPos () const |
const genericVector< T > * | getGenericVector () const |
iterator type (allows read and write operations).
The use of the iterator classes is similar to the iterators of the STL (Standard Template Library). See lti::genericVector::begin() for an example
For the debugging version of the iterators, boundary check will be done! This explains the low speed of the iterators of the debug version. In the release version, no boundary check will be done, and the iterators are sometimes a factor 10 faster than the debug iterators.
The use of the access operator at(.) is faster than the iterators in the debug version only. If you need to iterate on a genericVector use iterators instead (in the release version iterators are approx. a factor 3 faster than "at(.)").
CAUTION: Try to use the prefix incremental operator (i.e. ++it) instead of the postfix operator (i.e. it++) to allow efficient code also in debug-modus!
see also const_iterator
lti::genericVector< T >::iterator::iterator | ( | ) | [inline] |
Default constructor.
Referenced by lti::genericVector< T >::iterator::operator+(), and lti::genericVector< T >::iterator::operator-().
lti::genericVector< T >::iterator::iterator | ( | const iterator & | other | ) | [inline] |
copy constructor
lti::genericVector< T >::iterator::iterator | ( | const int | startPos, | |
genericVector< T > * | vct | |||
) | [inline, explicit, protected] |
protected constructor (for internal use only) NEVER USE EXPLICITLY THIS CONSTRUCTOR, OR YOUR CODE WILL NOT COMPILE IN THE RELEASE VERSION!
const genericVector<T>* lti::genericVector< T >::iterator::getGenericVector | ( | ) | const [inline, protected] |
for internal use only!!! This method does not exist in the release version!
Referenced by lti::genericVector< T >::const_iterator::operator=().
const int& lti::genericVector< T >::iterator::getPos | ( | ) | const [inline, protected] |
for internal use only!!! This method does not exist in the release version!
Referenced by lti::genericVector< T >::const_iterator::operator!=(), lti::genericVector< T >::const_iterator::operator=(), and lti::genericVector< T >::const_iterator::operator==().
bool lti::genericVector< T >::iterator::operator!= | ( | const iterator & | other | ) | const [inline] |
compare if both pointed positions are different
T& lti::genericVector< T >::iterator::operator* | ( | ) | [inline] |
get pointed data
iterator lti::genericVector< T >::iterator::operator+ | ( | const int | n | ) | [inline] |
advance (skip) some elements.
Use this operator with care! Note that you can skip the end of the genericVector, and read (or even worse: write!) out of bounds!
References lti::genericVector< T >::iterator::iterator().
iterator lti::genericVector< T >::iterator::operator++ | ( | int | ) | [inline] |
advance to next item
iterator& lti::genericVector< T >::iterator::operator++ | ( | ) | [inline] |
advance to next item
iterator& lti::genericVector< T >::iterator::operator+= | ( | const int | n | ) | [inline] |
advance (skip) some elements.
Use this operator with care! Note that you can skip the end of the genericVector, and read (or even worse: write!) out of bounds!
iterator lti::genericVector< T >::iterator::operator- | ( | const int | n | ) | [inline] |
recede (skip) some elements.
Use this operator with care! Note that you can skip the beginning of the genericVector, and read (or even worse: write!) out of bounds!
References lti::genericVector< T >::iterator::iterator().
iterator lti::genericVector< T >::iterator::operator-- | ( | int | ) | [inline] |
recede to previous item
iterator& lti::genericVector< T >::iterator::operator-- | ( | ) | [inline] |
recede to previous item
iterator& lti::genericVector< T >::iterator::operator-= | ( | const int | n | ) | [inline] |
recede (skip) some elements.
Use this operator with care! Note that you can skip the beginning of the genericVector, and read (or even worse: write!) out of bounds!
bool lti::genericVector< T >::iterator::operator< | ( | const iterator & | other | ) | const [inline] |
bool lti::genericVector< T >::iterator::operator<= | ( | const iterator & | other | ) | const [inline] |
iterator& lti::genericVector< T >::iterator::operator= | ( | const iterator & | other | ) | [inline] |
copy member
bool lti::genericVector< T >::iterator::operator== | ( | const iterator & | other | ) | const [inline] |
compare if both pointed positions are the same
bool lti::genericVector< T >::iterator::operator> | ( | const iterator & | other | ) | const [inline] |
bool lti::genericVector< T >::iterator::operator>= | ( | const iterator & | other | ) | const [inline] |
T& lti::genericVector< T >::iterator::operator[] | ( | const int | i | ) | [inline] |
access the elements relative to the iterator position