[reverse.iter.elem]

# 24 Iterators library [[iterators]](./#iterators)

## 24.5 Iterator adaptors [[predef.iterators]](predef.iterators#reverse.iter.elem)

### 24.5.1 Reverse iterators [[reverse.iterators]](reverse.iterators#reverse.iter.elem)

#### 24.5.1.6 Element access [reverse.iter.elem]

[ð](#lib:operator*,reverse_iterator)

`constexpr reference operator*() const;
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L3389)

*Effects*: As if by:Iterator tmp = current;return *--tmp;

[ð](#lib:operator-%3e,reverse_iterator)

`constexpr pointer operator->() const
  requires (is_pointer_v<Iterator> ||
            requires(const Iterator i) { i.operator->(); });
`

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L3406)

*Effects*: 

- [(2.1)](#2.1)

If Iterator is a pointer type, equivalent to:return prev(current);

- [(2.2)](#2.2)

Otherwise, equivalent to:return prev(current).operator->();

[ð](#lib:operator%5b%5d,reverse_iterator)

`constexpr unspecified operator[](difference_type n) const;
`

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L3423)

*Returns*: current[-n - 1][.](#3.sentence-1)
