Vector Iterator Interface -- Random Access Iterator
public:
// terminology support
typedef T ValueType;
typedef VectorIterator<T> Iterator;
// constructors
VectorIterator ();
VectorIterator (const Vector<T>& V);
VectorIterator (const Iterator& I);
// legal to dereference?
bool Valid () const; // cursor is valid element
// various operators
bool operator == (const Iterator& I2) const;
bool operator != (const Iterator& I2) const;
T& operator * (); // Return reference to current Tval
const T& operator * () const; // const version
T& operator [] (size_t i); // Return reference to Tval at index i
const T& operator [] (size_t i) const; // const version
Iterator& operator = (const Iterator & I);
Iterator& operator ++ (); // prefix
Iterator operator ++ (int); // postfix
Iterator& operator -- (); // prefix
Iterator operator -- (int); // postfix
// "pointer" arithmetic -- uses template parameter for integer type
long operator - (const Iterator & I2) const;
template <typename N>
Iterator operator + (N n) const;
template <typename N>
Iterator& operator += (N n);
template <typename N>
Iterator& operator -= (N n);