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