NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
deque_iterator< IsConst, Deque, BufSize > 模板结构体 参考

双端队列迭代器 更多...

#include <deque.hpp>

类 deque_iterator< IsConst, Deque, BufSize > 继承关系图:
[图例]

Public 类型

using container_type = Deque
 容器类型
using value_type = typename container_type::value_type
 值类型
using size_type = typename container_type::size_type
 大小类型
using difference_type = typename container_type::difference_type
 差值类型
using iterator_category = random_access_iterator_tag
 迭代器类别(随机访问)
using reference
 引用类型
using pointer
 指针类型

Public 成员函数

 deque_iterator (pointer cur, pointer *map, const container_type *deq)
 构造函数
 deque_iterator (pointer cur, pointer first, pointer last, pointer *node, const container_type *deq) noexcept
 构造函数
template<bool IsConst2>
 deque_iterator (const deque_iterator< IsConst2, Deque, BufSize > &other) noexcept
 从另一个迭代器转换构造(常量/非常量转换)
NEFORCE_NODISCARD reference dereference () const noexcept
 解引用操作
void increment () noexcept
 递增操作
void decrement () noexcept
 递减操作
void advance (difference_type off) noexcept
 前进操作
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 difference_type distance_to (const deque_iterator &other) const noexcept
 计算距离操作
NEFORCE_NODISCARD reference operator[] (const difference_type n) noexcept
 下标访问操作符
NEFORCE_NODISCARD bool equal (const deque_iterator &rhs) const noexcept
 相等比较
NEFORCE_NODISCARD bool less_than (const deque_iterator &rhs) const noexcept
 小于比较
NEFORCE_NODISCARD pointer base () const noexcept
 获取底层指针
NEFORCE_NODISCARD const container_typecontainer () const noexcept
 获取关联容器
Public 成员函数 继承自 iiterator< deque_iterator< IsConst, Deque, 0 > >
NEFORCE_NODISCARD constexpr decltype(auto) operator* () const noexcept
 解引用操作符
NEFORCE_NODISCARD constexpr decltype(auto) operator-> () const noexcept
 成员访问操作符
constexpr deque_iterator< IsConst, Deque, 0 > & operator++ () noexcept
 前置递增操作符
constexpr deque_iterator< IsConst, Deque, 0 > & operator-- () noexcept
 前置递减操作符
constexpr deque_iterator< IsConst, Deque, 0 > & operator+= (Distance n) noexcept
 复合加法赋值操作符
NEFORCE_NODISCARD constexpr deque_iterator< IsConst, Deque, 0 > operator+ (Distance n) const noexcept
 加法操作符
constexpr deque_iterator< IsConst, Deque, 0 > & operator-= (Distance n) noexcept
 复合减法赋值操作符
NEFORCE_NODISCARD constexpr enable_if_t<!is_same_v< T, deque_iterator< IsConst, Deque, 0 > >, deque_iterator< IsConst, Deque, 0 > > operator- (const T n) const noexcept
 减法操作符
NEFORCE_NODISCARD constexpr bool operator== (const deque_iterator< IsConst, Deque, 0 > &rhs) const noexcept
 相等比较操作符
NEFORCE_NODISCARD constexpr bool operator!= (const deque_iterator< IsConst, Deque, 0 > &rhs) const noexcept
 不等比较操作符
NEFORCE_NODISCARD constexpr bool operator< (const deque_iterator< IsConst, Deque, 0 > &rhs) const noexcept
 小于比较操作符
NEFORCE_NODISCARD constexpr bool operator> (const deque_iterator< IsConst, Deque, 0 > &rhs) const noexcept
 大于比较操作符
NEFORCE_NODISCARD constexpr bool operator<= (const deque_iterator< IsConst, Deque, 0 > &rhs) const noexcept
 小于等于比较操作符
NEFORCE_NODISCARD constexpr bool operator>= (const deque_iterator< IsConst, Deque, 0 > &rhs) const noexcept
 大于等于比较操作符

静态 Public 成员函数

static constexpr size_t deque_buf_size (const size_t n, const size_t sz) noexcept
 计算双端队列缓冲区大小

静态 Public 属性

static constexpr difference_type buffer_size = deque_buf_size(BufSize, sizeof(value_type))
 缓冲区大小

详细描述

template<bool IsConst, typename Deque, size_t BufSize = 0>
struct deque_iterator< IsConst, Deque, BufSize >

双端队列迭代器

模板参数
IsConst是否常量迭代器
Deque双端队列类型
BufSize缓冲区大小

为deque提供随机访问迭代器支持,处理跨缓冲区的遍历操作。 维护当前元素指针、当前缓冲区边界和节点映射表指针。

在文件 deque.hpp37 行定义.

构造及析构函数说明

◆ deque_iterator() [1/3]

template<bool IsConst, typename Deque, size_t BufSize = 0>
deque_iterator< IsConst, Deque, BufSize >::deque_iterator ( pointer cur,
pointer * map,
const container_type * deq )
inline

构造函数

参数
cur当前元素指针
map节点指针
deq容器指针

在文件 deque.hpp107 行定义.

◆ deque_iterator() [2/3]

template<bool IsConst, typename Deque, size_t BufSize = 0>
deque_iterator< IsConst, Deque, BufSize >::deque_iterator ( pointer cur,
pointer first,
pointer last,
pointer * node,
const container_type * deq )
inlinenoexcept

构造函数

参数
cur当前元素指针
first缓冲区起始指针
last缓冲区结束指针
node节点指针
deq容器指针

在文件 deque.hpp122 行定义.

◆ deque_iterator() [3/3]

template<bool IsConst, typename Deque, size_t BufSize = 0>
template<bool IsConst2>
deque_iterator< IsConst, Deque, BufSize >::deque_iterator ( const deque_iterator< IsConst2, Deque, BufSize > & other)
inlineexplicitnoexcept

从另一个迭代器转换构造(常量/非常量转换)

模板参数
IsConst2源迭代器的常量性
参数
other源迭代器

在文件 deque.hpp135 行定义.

成员函数说明

◆ advance()

template<bool IsConst, typename Deque, size_t BufSize = 0>
void deque_iterator< IsConst, Deque, BufSize >::advance ( difference_type off)
inlinenoexcept

前进操作

参数
off前进距离

处理跨缓冲区的前进/后退操作。

在文件 deque.hpp186 行定义.

◆ base()

template<bool IsConst, typename Deque, size_t BufSize = 0>
NEFORCE_NODISCARD pointer deque_iterator< IsConst, Deque, BufSize >::base ( ) const
inlinenoexcept

获取底层指针

返回
当前元素指针

在文件 deque.hpp242 行定义.

◆ container()

template<bool IsConst, typename Deque, size_t BufSize = 0>
NEFORCE_NODISCARD const container_type * deque_iterator< IsConst, Deque, BufSize >::container ( ) const
inlinenoexcept

获取关联容器

返回
关联容器指针

在文件 deque.hpp248 行定义.

◆ decrement()

template<bool IsConst, typename Deque, size_t BufSize = 0>
void deque_iterator< IsConst, Deque, BufSize >::decrement ( )
inlinenoexcept

递减操作

如果当前指针到达缓冲区起始,切换到上一个缓冲区。

在文件 deque.hpp171 行定义.

◆ deque_buf_size()

template<bool IsConst, typename Deque, size_t BufSize = 0>
constexpr size_t deque_iterator< IsConst, Deque, BufSize >::deque_buf_size ( const size_t n,
const size_t sz )
inlinestaticconstexprnoexcept

计算双端队列缓冲区大小

参数
n用户指定的缓冲区大小
sz元素类型大小
返回
计算得到的缓冲区大小

如果n不为0,返回n;否则根据元素大小计算合适的缓冲区大小: 元素大小小于256字节时返回4096/sz,否则返回16。

在文件 deque.hpp58 行定义.

◆ dereference()

template<bool IsConst, typename Deque, size_t BufSize = 0>
NEFORCE_NODISCARD reference deque_iterator< IsConst, Deque, BufSize >::dereference ( ) const
inlinenoexcept

解引用操作

返回
当前元素的引用

在文件 deque.hpp146 行定义.

◆ distance_to()

template<bool IsConst, typename Deque, size_t BufSize = 0>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 difference_type deque_iterator< IsConst, Deque, BufSize >::distance_to ( const deque_iterator< IsConst, Deque, BufSize > & other) const
inlinenoexcept

计算距离操作

参数
other另一个迭代器
返回
两个迭代器之间的距离

考虑缓冲区间隔计算准确距离。

在文件 deque.hpp206 行定义.

◆ equal()

template<bool IsConst, typename Deque, size_t BufSize = 0>
NEFORCE_NODISCARD bool deque_iterator< IsConst, Deque, BufSize >::equal ( const deque_iterator< IsConst, Deque, BufSize > & rhs) const
inlinenoexcept

相等比较

参数
rhs右侧迭代器
返回
是否相等

在文件 deque.hpp223 行定义.

◆ increment()

template<bool IsConst, typename Deque, size_t BufSize = 0>
void deque_iterator< IsConst, Deque, BufSize >::increment ( )
inlinenoexcept

递增操作

如果当前指针到达缓冲区末尾,切换到下一个缓冲区。

在文件 deque.hpp157 行定义.

◆ less_than()

template<bool IsConst, typename Deque, size_t BufSize = 0>
NEFORCE_NODISCARD bool deque_iterator< IsConst, Deque, BufSize >::less_than ( const deque_iterator< IsConst, Deque, BufSize > & rhs) const
inlinenoexcept

小于比较

参数
rhs右侧迭代器
返回
当前迭代器是否在rhs之前

在文件 deque.hpp233 行定义.

◆ operator[]()

template<bool IsConst, typename Deque, size_t BufSize = 0>
NEFORCE_NODISCARD reference deque_iterator< IsConst, Deque, BufSize >::operator[] ( const difference_type n)
inlinenoexcept

下标访问操作符

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

在文件 deque.hpp216 行定义.


该结构体的文档由以下文件生成: