casacore
Loading...
Searching...
No Matches
casacore::VectorSTLIterator< T > Class Template Reference

More...

#include <VectorSTLIterator.h>

Public Types

typedef T value_type
 
typedef value_typepointer
 
typedef const value_typeconst_pointer
 
typedef VectorSTLIterator< T > iterator
 
typedef const VectorSTLIterator< T > const_iterator
 
typedef value_typereference
 
typedef const value_typeconst_reference
 
typedef std::size_t size_type
 
typedef ptrdiff_t difference_type
 

Public Member Functions

 VectorSTLIterator (const Vector< T > &c)
 Constructors.
 
 VectorSTLIterator ()
 
 VectorSTLIterator (const typename Array< T >::IteratorSTL &c)
 
reference operator[] (size_t i)
 Access.
 
const_reference operator[] (size_t i) const
 
reference operator* ()
 
const_reference operator* () const
 
pointer pos () const
 
const iteratoroperator++ ()
 Manipulation.
 
iterator operator++ (int)
 
iteratoroperator-- ()
 
iterator operator-- (int)
 
iteratoroperator+= (difference_type i)
 
iteratoroperator-= (difference_type i)
 
iterator operator+ (difference_type i) const
 
iterator operator- (difference_type i) const
 
difference_type operator- (const VectorSTLIterator< T > &x) const
 Size related.
 
bool operator== (const iterator &other) const
 Comparisons.
 
bool operator!= (const iterator other) const
 
bool operator< (const iterator &other) const
 
bool operator== (const_pointer const pos) const
 
bool operator!= (const_pointer const pos) const
 
bool operator< (const_pointer const pos) const
 

Protected Attributes

pointer const start_p
 Start (for random indexing)
 
difference_type step_p
 Distance between elements.
 
pointer iter_p
 Current element pointer.
 

Detailed Description

template<typename T>
class casacore::VectorSTLIterator< T >

Casacore Vector iterator

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25

Synopsis

This class creates a random access STL iterator for an Casacore Vector. All the STL functionality is present (or if something missing can be easily added).
The following comments hold:

  • A VectorSTLIterator can be created from a Vector (non-STL) It is the same as using Vector.begin()
  • No contiguous iterator is provided. Its construction is not necessary, since Vector.data() is a fully functional STL iterator already.
  • This iterator is non-intrusive. Since it needs state (the 'step') nothing substantial is gained by having it included in the Vector class. The major gain would be to be able to use the standard nomenclature: Vector::iterator() rather than VectorSTLiterator
  • It would be advisable, and easy to implement, to add a template argument to the Array classes: <class T, bool isCont=true>. The default is contiguous, since creation is contiguous. In that case correct iterators for e.g. contiguous arrays are supplied automatically.
  • needs probably some 'const' fine tuning; and the -> operator

Definition at line 64 of file VectorSTLIterator.h.

Member Typedef Documentation

◆ const_iterator

template<typename T >
const VectorSTLIterator<T> casacore::VectorSTLIterator< T >::const_iterator

Definition at line 71 of file VectorSTLIterator.h.

◆ const_pointer

template<typename T >
const value_type* casacore::VectorSTLIterator< T >::const_pointer

Definition at line 69 of file VectorSTLIterator.h.

◆ const_reference

template<typename T >
const value_type& casacore::VectorSTLIterator< T >::const_reference

Definition at line 73 of file VectorSTLIterator.h.

◆ difference_type

template<typename T >
ptrdiff_t casacore::VectorSTLIterator< T >::difference_type

Definition at line 75 of file VectorSTLIterator.h.

◆ iterator

template<typename T >
VectorSTLIterator<T> casacore::VectorSTLIterator< T >::iterator

Definition at line 70 of file VectorSTLIterator.h.

◆ pointer

template<typename T >
value_type* casacore::VectorSTLIterator< T >::pointer

Definition at line 68 of file VectorSTLIterator.h.

◆ reference

template<typename T >
value_type& casacore::VectorSTLIterator< T >::reference

Definition at line 72 of file VectorSTLIterator.h.

◆ size_type

template<typename T >
std::size_t casacore::VectorSTLIterator< T >::size_type

Definition at line 74 of file VectorSTLIterator.h.

◆ value_type

template<typename T >
T casacore::VectorSTLIterator< T >::value_type

Definition at line 67 of file VectorSTLIterator.h.

Constructor & Destructor Documentation

◆ VectorSTLIterator() [1/3]

template<typename T >
casacore::VectorSTLIterator< T >::VectorSTLIterator ( const Vector< T > & c)
inlineexplicit

Constructors.

The iterator constructor from a Vector is the same as if created from Vector.begin(). Copy constructor and assignment can be the default ones.

Definition at line 80 of file VectorSTLIterator.h.

◆ VectorSTLIterator() [2/3]

template<typename T >
casacore::VectorSTLIterator< T >::VectorSTLIterator ( )
inline

Definition at line 85 of file VectorSTLIterator.h.

◆ VectorSTLIterator() [3/3]

template<typename T >
casacore::VectorSTLIterator< T >::VectorSTLIterator ( const typename Array< T >::IteratorSTL & c)
inline

Definition at line 87 of file VectorSTLIterator.h.

Member Function Documentation

◆ operator!=() [1/2]

template<typename T >
bool casacore::VectorSTLIterator< T >::operator!= ( const iterator other) const
inline

Definition at line 128 of file VectorSTLIterator.h.

References casacore::VectorSTLIterator< T >::iter_p.

◆ operator!=() [2/2]

template<typename T >
bool casacore::VectorSTLIterator< T >::operator!= ( const_pointer const pos) const
inline

◆ operator*() [1/2]

template<typename T >
reference casacore::VectorSTLIterator< T >::operator* ( )
inline

Definition at line 98 of file VectorSTLIterator.h.

References casacore::VectorSTLIterator< T >::iter_p.

◆ operator*() [2/2]

template<typename T >
const_reference casacore::VectorSTLIterator< T >::operator* ( ) const
inline

Definition at line 99 of file VectorSTLIterator.h.

References casacore::VectorSTLIterator< T >::iter_p.

◆ operator+()

template<typename T >
iterator casacore::VectorSTLIterator< T >::operator+ ( difference_type i) const
inline

Definition at line 114 of file VectorSTLIterator.h.

◆ operator++() [1/2]

template<typename T >
const iterator & casacore::VectorSTLIterator< T >::operator++ ( )
inline

◆ operator++() [2/2]

template<typename T >
iterator casacore::VectorSTLIterator< T >::operator++ ( int )
inline

◆ operator+=()

template<typename T >
iterator & casacore::VectorSTLIterator< T >::operator+= ( difference_type i)
inline

◆ operator-() [1/2]

template<typename T >
difference_type casacore::VectorSTLIterator< T >::operator- ( const VectorSTLIterator< T > & x) const
inline

◆ operator-() [2/2]

template<typename T >
iterator casacore::VectorSTLIterator< T >::operator- ( difference_type i) const
inline

Definition at line 116 of file VectorSTLIterator.h.

◆ operator--() [1/2]

template<typename T >
iterator & casacore::VectorSTLIterator< T >::operator-- ( )
inline

◆ operator--() [2/2]

template<typename T >
iterator casacore::VectorSTLIterator< T >::operator-- ( int )
inline

◆ operator-=()

template<typename T >
iterator & casacore::VectorSTLIterator< T >::operator-= ( difference_type i)
inline

◆ operator<() [1/2]

template<typename T >
bool casacore::VectorSTLIterator< T >::operator< ( const iterator & other) const
inline

Definition at line 130 of file VectorSTLIterator.h.

References casacore::VectorSTLIterator< T >::iter_p.

◆ operator<() [2/2]

template<typename T >
bool casacore::VectorSTLIterator< T >::operator< ( const_pointer const pos) const
inline

◆ operator==() [1/2]

template<typename T >
bool casacore::VectorSTLIterator< T >::operator== ( const iterator & other) const
inline

Comparisons.

Definition at line 126 of file VectorSTLIterator.h.

References casacore::VectorSTLIterator< T >::iter_p.

◆ operator==() [2/2]

template<typename T >
bool casacore::VectorSTLIterator< T >::operator== ( const_pointer const pos) const
inline

◆ operator[]() [1/2]

template<typename T >
reference casacore::VectorSTLIterator< T >::operator[] ( size_t i)
inline

◆ operator[]() [2/2]

template<typename T >
const_reference casacore::VectorSTLIterator< T >::operator[] ( size_t i) const
inline

◆ pos()

Member Data Documentation

◆ iter_p

◆ start_p

template<typename T >
pointer const casacore::VectorSTLIterator< T >::start_p
protected

Start (for random indexing)

Definition at line 141 of file VectorSTLIterator.h.

Referenced by casacore::VectorSTLIterator< T >::operator[](), and casacore::VectorSTLIterator< T >::operator[]().

◆ step_p


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