LTI-Lib latest version v1.9 - last update 10 Apr 2010

lti::genericVector< T >::iterator Class Reference

iterator type (allows read and write operations). More...

#include <ltiGenericVector.h>

List of all members.

Public Member Functions

 iterator ()
 iterator (const iterator &other)
iteratoroperator++ ()
iterator operator++ (int)
iteratoroperator-- ()
iterator operator-- (int)
iteratoroperator+= (const int n)
iteratoroperator-= (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)
iteratoroperator= (const iterator &other)

Protected Member Functions

 iterator (const int startPos, genericVector< T > *vct)
const int & getPos () const
const genericVector< T > * getGenericVector () const

Detailed Description

template<class T>
class lti::genericVector< T >::iterator

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


Constructor & Destructor Documentation

template<class T>
lti::genericVector< T >::iterator::iterator (  )  [inline]
template<class T>
lti::genericVector< T >::iterator::iterator ( const iterator other  )  [inline]

copy constructor

template<class T>
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!


Member Function Documentation

template<class T>
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=().

template<class T>
const int& lti::genericVector< T >::iterator::getPos (  )  const [inline, protected]
template<class T>
bool lti::genericVector< T >::iterator::operator!= ( const iterator other  )  const [inline]

compare if both pointed positions are different

template<class T>
T& lti::genericVector< T >::iterator::operator* (  )  [inline]

get pointed data

template<class T>
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().

template<class T>
iterator lti::genericVector< T >::iterator::operator++ ( int   )  [inline]

advance to next item

template<class T>
iterator& lti::genericVector< T >::iterator::operator++ (  )  [inline]

advance to next item

template<class T>
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!

template<class T>
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().

template<class T>
iterator lti::genericVector< T >::iterator::operator-- ( int   )  [inline]

recede to previous item

template<class T>
iterator& lti::genericVector< T >::iterator::operator-- (  )  [inline]

recede to previous item

template<class T>
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!

template<class T>
bool lti::genericVector< T >::iterator::operator< ( const iterator other  )  const [inline]

compare if the position of the first iterator is smaller than the position of the second iterator

template<class T>
bool lti::genericVector< T >::iterator::operator<= ( const iterator other  )  const [inline]

compare if the position of the first iterator is smaller or equal than the position of the second iterator

template<class T>
iterator& lti::genericVector< T >::iterator::operator= ( const iterator other  )  [inline]

copy member

template<class T>
bool lti::genericVector< T >::iterator::operator== ( const iterator other  )  const [inline]

compare if both pointed positions are the same

template<class T>
bool lti::genericVector< T >::iterator::operator> ( const iterator other  )  const [inline]

compare if the position of the first iterator is greater than the position of the second iterator

template<class T>
bool lti::genericVector< T >::iterator::operator>= ( const iterator other  )  const [inline]

compare if the position of the first iterator is greater or equal than the position of the second iterator

template<class T>
T& lti::genericVector< T >::iterator::operator[] ( const int  i  )  [inline]

access the elements relative to the iterator position


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

Generated on Sat Apr 10 15:28:24 2010 for LTI-Lib by Doxygen 1.6.1