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

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

#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)
 从其他类型的反向迭代器赋值
NEFORCE_CONSTEXPR20 ~reverse_iterator () noexcept=default
 析构函数
NEFORCE_NODISCARD constexpr reference operator* () const noexcept(is_nothrow_copy_assignable< Iterator >::value &&noexcept(*--(_NEFORCE declval< Iterator & >())))
 解引用运算符
NEFORCE_NODISCARD constexpr pointer operator-> () const noexcept(is_nothrow_copy_constructible< Iterator >::value &&noexcept(--(_NEFORCE 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(_NEFORCE declcopy< reference >(reverse_iterator(current - n))))
 下标运算符
NEFORCE_NODISCARD constexpr const Iterator & base () const noexcept
 获取底层迭代器

详细描述

template<bidirectional_iterator Iter>
class reverse_iterator< Iter >

反向迭代器模板类

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

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

在文件 ranges.hpp930 行定义.

构造及析构函数说明

◆ reverse_iterator() [1/2]

template<bidirectional_iterator Iter>
reverse_iterator< Iter >::reverse_iterator ( Iterator x)
inlineexplicitconstexprnoexcept

从底层迭代器构造

参数
x底层迭代器

在文件 reverse_iterator.hpp52 行定义.

◆ reverse_iterator() [2/2]

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

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

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

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

在文件 reverse_iterator.hpp66 行定义.

成员函数说明

◆ base()

template<bidirectional_iterator Iter>
NEFORCE_NODISCARD constexpr const Iterator & reverse_iterator< Iter >::base ( ) const
inlineconstexprnoexcept

获取底层迭代器

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

在文件 reverse_iterator.hpp221 行定义.

被这些函数引用 operator-().

◆ operator*()

template<bidirectional_iterator Iter>
NEFORCE_NODISCARD constexpr reference reverse_iterator< Iter >::operator* ( ) const
inlineconstexprnoexcept

解引用运算符

返回
当前元素的引用

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

在文件 reverse_iterator.hpp95 行定义.

◆ operator+()

template<bidirectional_iterator Iter>
reverse_iterator reverse_iterator< Iter >::operator+ ( const difference_type n) const
inlineconstexprnoexcept

加法运算符

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

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

在文件 reverse_iterator.hpp170 行定义.

◆ operator++() [1/2]

template<bidirectional_iterator Iter>
reverse_iterator & reverse_iterator< Iter >::operator++ ( )
inlineconstexprnoexcept

前缀递增运算符

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

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

在文件 reverse_iterator.hpp125 行定义.

◆ operator++() [2/2]

template<bidirectional_iterator Iter>
reverse_iterator reverse_iterator< Iter >::operator++ ( int )
inlineconstexprnoexcept

后缀递增运算符

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

在文件 reverse_iterator.hpp134 行定义.

◆ operator+=()

template<bidirectional_iterator Iter>
reverse_iterator & reverse_iterator< Iter >::operator+= ( const difference_type n)
inlineconstexprnoexcept

复合加法赋值运算符

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

在文件 reverse_iterator.hpp180 行定义.

◆ operator-()

template<bidirectional_iterator Iter>
reverse_iterator reverse_iterator< Iter >::operator- ( const difference_type n) const
inlineconstexprnoexcept

减法运算符

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

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

在文件 reverse_iterator.hpp192 行定义.

◆ operator--() [1/2]

template<bidirectional_iterator Iter>
reverse_iterator & reverse_iterator< Iter >::operator-- ( )
inlineconstexprnoexcept

前缀递减运算符

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

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

在文件 reverse_iterator.hpp147 行定义.

◆ operator--() [2/2]

template<bidirectional_iterator Iter>
reverse_iterator reverse_iterator< Iter >::operator-- ( int )
inlineconstexprnoexcept

后缀递减运算符

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

在文件 reverse_iterator.hpp156 行定义.

◆ operator-=()

template<bidirectional_iterator Iter>
reverse_iterator & reverse_iterator< Iter >::operator-= ( const difference_type n)
inlineconstexprnoexcept

复合减法赋值运算符

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

在文件 reverse_iterator.hpp202 行定义.

◆ operator->()

template<bidirectional_iterator Iter>
NEFORCE_NODISCARD constexpr pointer reverse_iterator< Iter >::operator-> ( ) const
inlineconstexprnoexcept

成员访问运算符

返回
当前元素的指针

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

在文件 reverse_iterator.hpp107 行定义.

◆ operator=()

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

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

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

在文件 reverse_iterator.hpp82 行定义.

◆ operator[]()

template<bidirectional_iterator Iter>
reference reverse_iterator< Iter >::operator[] ( const difference_type n) const
inlineconstexprnoexcept

下标运算符

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

在文件 reverse_iterator.hpp212 行定义.


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