i
is established by the identity: &*(reverse_iterator(i)) == &*(i - 1)
This mapping is dictated by the fact that while there is always a pointer past the end of an array, there might not be a valid pointer before the beginning of an array." [24.4.1]/1,2
Reverse iterators can be tricky and surprising at first. Their semantics make sense, however, and the trickiness is a side effect of the requirement that the iterators must be safe.
Definition at line 92 of file stl_iterator.h.
typedef iterator_traits<_Iterator>::difference_type difference_type |
Distance between iterators is represented as this type.
Reimplemented from iterator.
Definition at line 105 of file stl_iterator.h.
typedef _Category iterator_category [inherited] |
typedef iterator_traits<_Iterator>::pointer pointer |
This type represents a pointer-to-value_type.
Reimplemented from iterator.
Definition at line 107 of file stl_iterator.h.
typedef iterator_traits<_Iterator>::reference reference |
This type represents a reference-to-value_type.
Reimplemented from iterator.
Definition at line 106 of file stl_iterator.h.
typedef _Tp value_type [inherited] |
reverse_iterator | ( | ) | [inline] |
The default constructor default-initializes member current
. If it is a pointer, that means it is zero-initialized.
Definition at line 116 of file stl_iterator.h.
Referenced by reverse_iterator::operator+(), and reverse_iterator::operator-().
reverse_iterator | ( | iterator_type | __x | ) | [inline, explicit] |
This iterator will move in the opposite direction that x
does.
Definition at line 122 of file stl_iterator.h.
reverse_iterator | ( | const reverse_iterator< _Iterator > & | __x | ) | [inline] |
The copy constructor is normal.
Definition at line 127 of file stl_iterator.h.
reverse_iterator | ( | const reverse_iterator< _Iter > & | __x | ) | [inline] |
A reverse_iterator across other types can be copied in the normal fashion.
Definition at line 135 of file stl_iterator.h.
iterator_type base | ( | ) | const [inline] |
current
, the iterator used for underlying work. Definition at line 142 of file stl_iterator.h.
Referenced by std::operator+(), std::operator-(), and std::operator==().
reference operator* | ( | ) | const [inline] |
Definition at line 151 of file stl_iterator.h.
Referenced by reverse_iterator::operator->().
reverse_iterator operator+ | ( | difference_type | __n | ) | const [inline] |
Definition at line 222 of file stl_iterator.h.
References reverse_iterator::reverse_iterator().
reverse_iterator operator++ | ( | int | ) | [inline] |
Definition at line 184 of file stl_iterator.h.
reverse_iterator& operator++ | ( | ) | [inline] |
Definition at line 172 of file stl_iterator.h.
reverse_iterator& operator+= | ( | difference_type | __n | ) | [inline] |
Definition at line 231 of file stl_iterator.h.
reverse_iterator operator- | ( | difference_type | __n | ) | const [inline] |
Definition at line 243 of file stl_iterator.h.
References reverse_iterator::reverse_iterator().
reverse_iterator operator-- | ( | int | ) | [inline] |
Definition at line 209 of file stl_iterator.h.
reverse_iterator& operator-- | ( | ) | [inline] |
Definition at line 197 of file stl_iterator.h.
reverse_iterator& operator-= | ( | difference_type | __n | ) | [inline] |
Definition at line 252 of file stl_iterator.h.
pointer operator-> | ( | ) | const [inline] |
Definition at line 163 of file stl_iterator.h.
References reverse_iterator::operator*().
reference operator[] | ( | difference_type | __n | ) | const [inline] |
Definition at line 264 of file stl_iterator.h.