| | | | | |

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);

| | Top of Page | 1. Positional Containers - 13 of 23