5class random_access_iterator
9 typedef ITERATOR_TYPE ITERATOR_BASE_TYPE;
14 random_access_iterator(ITERATOR_TYPE * p)
22 random_access_iterator(
const random_access_iterator & it)
30 random_access_iterator & operator = (
const random_access_iterator & it)
40 bool operator == (
const random_access_iterator & it)
48 bool operator != (
const random_access_iterator & it)
51 return !operator==(it);
56 random_access_iterator operator ++(
int)
59 random_access_iterator it = *
this;
68 random_access_iterator operator --(
int)
71 random_access_iterator it = *
this;
80 random_access_iterator & operator ++()
90 random_access_iterator & operator +(iptr i)
100 random_access_iterator & operator --()
110 random_access_iterator & operator -(iptr c)
116 bool operator < (
const random_access_iterator & i)
const
121 ITERATOR_TYPE & operator * ()
126 const ITERATOR_TYPE & operator * ()
const
128 return (
const ITERATOR_TYPE &)*m_p;
136class const_random_access_iterator
141 const ITERATOR_TYPE * m_p;
143 const_random_access_iterator(
const ITERATOR_TYPE * p)
150 const_random_access_iterator(
const random_access_iterator < ITERATOR_TYPE > & it)
158 const_random_access_iterator(
const const_random_access_iterator & it)
166 const_random_access_iterator & operator = (
const random_access_iterator < ITERATOR_TYPE > & it)
176 const_random_access_iterator & operator = (
const const_random_access_iterator & it)
186 bool operator == (
const const_random_access_iterator & it)
189 return m_p == it.m_p;
194 bool operator != (
const const_random_access_iterator & it)
197 return !operator==(it);
202 const_random_access_iterator operator ++(
int)
205 const_random_access_iterator it = *
this;
214 const_random_access_iterator operator --(
int)
217 const_random_access_iterator it = *
this;
226 const_random_access_iterator & operator ++()
236 const_random_access_iterator & operator +(iptr i)
246 const_random_access_iterator & operator --()
252 const_random_access_iterator & operator -(iptr i)
259 bool operator < (
const const_random_access_iterator & i)
const
266 const ITERATOR_TYPE & operator * ()
268 return *((
const ITERATOR_TYPE*)m_p);