class iterator
{
  public:
  iterator ()
      {
        _index = 0;
        _vector = 0;
      }

  iterator (cmt_vector& vector)
      {
        _index = 0;
        _vector = &vector;
      }

  iterator (const iterator& other)
      {
        _index = other._index;
        _vector = other._vector;
      }

  iterator& operator = (const iterator& other)
      {
        _index = other._index;
        _vector = other._vector;

        return (*this);
      }

  bool operator == (const iterator& other)
      {
        if (_vector != other._vector) return (false);
        if (_index != other._index) return (false);

        return (true);
      }

  iterator& operator ++ ()
      {
        if (_vector != 0)
          {
            _index++;
          }

        return (*this);
      };

  iterator& operator -- ()
      {
        return (*this);
      };

  int operator - (const iterator* other)
      {
        return (0);
      };

  iterator operator + (int offset)
      {
        iterator it = *this;
        return (it);
      };

  iterator operator - (int offset)
      {
        iterator it = *this;
        return (it);
      };

  T& operator * ()
      {
        return ();
      };

  private:
  int _index;
  cmt_vector* _vector;
};
