MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
reverse_iterator< Iterator > 模板类 参考

反向迭代器模板类 更多...

#include <reverse_iterator.hpp>

Public 类型

using iterator_category = iter_category_t<Iterator>
 迭代器类别
using value_type = iter_value_t<Iterator>
 值类型
using difference_type = iter_difference_t<Iterator>
 差值类型
using pointer = iter_pointer_t<Iterator>
 指针类型
using reference = iter_reference_t<Iterator>
 引用类型

Public 成员函数

constexpr reverse_iterator ()=default
 默认构造函数
constexpr reverse_iterator (Iterator x) noexcept(is_nothrow_move_constructible_v< Iterator >)
 从底层迭代器构造
template<typename U>
constexpr reverse_iterator (const reverse_iterator< U > &x) noexcept(is_nothrow_constructible_v< Iterator, const U & >)
 从其他类型的反向迭代器构造
template<typename U>
constexpr reverse_iteratoroperator= (const reverse_iterator< U > &x) noexcept(is_nothrow_assignable< reverse_iterator &, const U & >::value)
 从其他类型的反向迭代器赋值
MSTL_CONSTEXPR20 ~reverse_iterator () noexcept=default
 析构函数
MSTL_NODISCARD constexpr reference operator* () const noexcept(is_nothrow_copy_assignable< Iterator >::value &&noexcept(*--(_MSTL declval< Iterator & >())))
 解引用运算符
MSTL_NODISCARD constexpr pointer operator-> () const noexcept(is_nothrow_copy_constructible< Iterator >::value &&noexcept(--(_MSTL declval< Iterator & >())) &&is_nothrow_arrow< Iterator &, pointer >::value)
 成员访问运算符
constexpr reverse_iteratoroperator++ () noexcept(noexcept(--current))
 前缀递增运算符
constexpr reverse_iterator operator++ (int) noexcept(is_nothrow_copy_constructible_v< Iterator > &&noexcept(--current))
 后缀递增运算符
constexpr reverse_iteratoroperator-- () noexcept(noexcept(++current))
 前缀递减运算符
constexpr reverse_iterator operator-- (int) noexcept(is_nothrow_copy_constructible_v< Iterator > &&noexcept(++current))
 后缀递减运算符
constexpr reverse_iterator operator+ (const difference_type n) const noexcept(noexcept(reverse_iterator(current - n)))
 加法运算符
constexpr reverse_iteratoroperator+= (const difference_type n) noexcept(noexcept(current -=n))
 复合加法赋值运算符
constexpr reverse_iterator operator- (const difference_type n) const noexcept(noexcept(reverse_iterator(current+n)))
 减法运算符
constexpr reverse_iteratoroperator-= (const difference_type n) noexcept(noexcept(current+=n))
 复合减法赋值运算符
constexpr reference operator[] (const difference_type n) const noexcept(noexcept(_MSTL declcopy< reference >(reverse_iterator(current - n))))
 下标运算符
MSTL_NODISCARD constexpr const Iterator & base () const noexcept
 获取底层迭代器

详细描述

template<typename Iterator>
class reverse_iterator< Iterator >

反向迭代器模板类

模板参数
Iterator底层迭代器类型

将双向迭代器包装为反向迭代器,使得递增操作变为递减,递减操作变为递增。 用于从容器末尾向开头反向遍历。

在文件 reverse_iterator.hpp29 行定义.

构造及析构函数说明

◆ reverse_iterator() [1/2]

template<typename Iterator>
reverse_iterator< Iterator >::reverse_iterator ( Iterator x)
inlineexplicitconstexprnoexcept

从底层迭代器构造

参数
x底层迭代器

在文件 reverse_iterator.hpp52 行定义.

引用了 _MSTL , 以及 move().

◆ reverse_iterator() [2/2]

template<typename Iterator>
template<typename U>
reverse_iterator< Iterator >::reverse_iterator ( const reverse_iterator< U > & x)
inlineexplicitconstexprnoexcept

从其他类型的反向迭代器构造

模板参数
U其他迭代器类型
参数
x其他反向迭代器

允许从兼容迭代器类型的反向迭代器构造。

在文件 reverse_iterator.hpp67 行定义.

引用了 reverse_iterator().

成员函数说明

◆ base()

template<typename Iterator>
MSTL_NODISCARD constexpr const Iterator & reverse_iterator< Iterator >::base ( ) const
inlineconstexprnoexcept

获取底层迭代器

返回
底层迭代器的常量引用

在文件 reverse_iterator.hpp226 行定义.

◆ operator*()

template<typename Iterator>
MSTL_NODISCARD constexpr reference reverse_iterator< Iterator >::operator* ( ) const
inlineconstexprnoexcept

解引用运算符

返回
当前元素的引用

返回底层迭代器前一个位置的元素引用。

在文件 reverse_iterator.hpp96 行定义.

引用了 _MSTL , 以及 declval().

◆ operator+()

template<typename Iterator>
reverse_iterator reverse_iterator< Iterator >::operator+ ( const difference_type n) const
inlineconstexprnoexcept

加法运算符

参数
n前进距离
返回
前进n个位置后的反向迭代器

反向迭代器的前进对应底层迭代器的后退。

在文件 reverse_iterator.hpp173 行定义.

引用了 reverse_iterator().

◆ operator++() [1/2]

template<typename Iterator>
reverse_iterator & reverse_iterator< Iterator >::operator++ ( )
inlineconstexprnoexcept

前缀递增运算符

返回
当前反向迭代器的引用

反向迭代器的递增对应底层迭代器的递减。

在文件 reverse_iterator.hpp126 行定义.

引用了 reverse_iterator().

◆ operator++() [2/2]

template<typename Iterator>
reverse_iterator reverse_iterator< Iterator >::operator++ ( int )
inlineconstexprnoexcept

后缀递增运算符

返回
递增前的反向迭代器副本

在文件 reverse_iterator.hpp136 行定义.

引用了 reverse_iterator().

◆ operator+=()

template<typename Iterator>
reverse_iterator & reverse_iterator< Iterator >::operator+= ( const difference_type n)
inlineconstexprnoexcept

复合加法赋值运算符

参数
n前进距离
返回
当前反向迭代器的引用

在文件 reverse_iterator.hpp183 行定义.

引用了 reverse_iterator().

◆ operator-()

template<typename Iterator>
reverse_iterator reverse_iterator< Iterator >::operator- ( const difference_type n) const
inlineconstexprnoexcept

减法运算符

参数
n后退距离
返回
后退n个位置后的反向迭代器

反向迭代器的后退对应底层迭代器的前进。

在文件 reverse_iterator.hpp196 行定义.

引用了 reverse_iterator().

◆ operator--() [1/2]

template<typename Iterator>
reverse_iterator & reverse_iterator< Iterator >::operator-- ( )
inlineconstexprnoexcept

前缀递减运算符

返回
当前反向迭代器的引用

反向迭代器的递减对应底层迭代器的递增。

在文件 reverse_iterator.hpp149 行定义.

引用了 reverse_iterator().

◆ operator--() [2/2]

template<typename Iterator>
reverse_iterator reverse_iterator< Iterator >::operator-- ( int )
inlineconstexprnoexcept

后缀递减运算符

返回
递减前的反向迭代器副本

在文件 reverse_iterator.hpp159 行定义.

引用了 reverse_iterator().

◆ operator-=()

template<typename Iterator>
reverse_iterator & reverse_iterator< Iterator >::operator-= ( const difference_type n)
inlineconstexprnoexcept

复合减法赋值运算符

参数
n后退距离
返回
当前反向迭代器的引用

在文件 reverse_iterator.hpp206 行定义.

引用了 reverse_iterator().

◆ operator->()

template<typename Iterator>
MSTL_NODISCARD constexpr pointer reverse_iterator< Iterator >::operator-> ( ) const
inlineconstexprnoexcept

成员访问运算符

返回
当前元素的指针

返回底层迭代器前一个位置的元素指针。

在文件 reverse_iterator.hpp108 行定义.

引用了 _MSTL , 以及 declval().

◆ operator=()

template<typename Iterator>
template<typename U>
reverse_iterator & reverse_iterator< Iterator >::operator= ( const reverse_iterator< U > & x)
inlineconstexprnoexcept

从其他类型的反向迭代器赋值

模板参数
U其他迭代器类型
参数
x其他反向迭代器
返回
当前反向迭代器的引用

在文件 reverse_iterator.hpp82 行定义.

引用了 reverse_iterator().

◆ operator[]()

template<typename Iterator>
reference reverse_iterator< Iterator >::operator[] ( const difference_type n) const
inlineconstexprnoexcept

下标运算符

参数
n偏移量
返回
偏移n个位置后的元素引用

在文件 reverse_iterator.hpp217 行定义.

引用了 _MSTL.


该类的文档由以下文件生成: