NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
迭代器操作

迭代器操作函数的实现 更多...

函数

template<typename Iterator>
constexpr iter_pointer_t< Iterator > to_pointer (Iterator iter)
 将迭代器转换为原始指针
template<typename Iterator, typename Distance>
constexpr void advance (Iterator &i, Distance n)
 将迭代器前进指定距离
template<typename Iterator>
constexpr Iterator prev (Iterator iter, iter_difference_t< Iterator > n=-1)
 获取迭代器的前一个位置
template<typename Iterator>
constexpr Iterator next (Iterator iter, iter_difference_t< Iterator > n=1)
 获取迭代器的后一个位置
template<typename Iterator>
constexpr iter_difference_t< Iterator > distance (Iterator first, Iterator last)
 计算两个迭代器之间的距离

详细描述

迭代器操作函数的实现

函数说明

◆ advance()

template<typename Iterator, typename Distance>
void advance ( Iterator & i,
Distance n )
constexpr

将迭代器前进指定距离

模板参数
Iterator迭代器类型
Distance距离类型
参数
i迭代器引用
n前进距离

根据迭代器类型使用不同的前进策略:

  • 随机访问迭代器:直接使用 += 操作
  • 双向迭代器:支持正负距离
  • 前向迭代器:只支持非负距离

在文件 iterator.hpp106 行定义.

引用了 is_arithmetic_v, is_bid_iter_v, is_iter_v, is_rnd_iter_v, is_signed_v , 以及 NEFORCE_DEBUG_VERIFY.

被这些函数引用 equal_range(), find_end(), lower_bound(), next(), prev() , 以及 upper_bound().

◆ distance()

template<typename Iterator>
iter_difference_t< Iterator > distance ( Iterator first,
Iterator last )
constexpr

◆ next()

◆ prev()

template<typename Iterator>
Iterator prev ( Iterator iter,
iter_difference_t< Iterator > n = -1 )
constexpr

获取迭代器的前一个位置

模板参数
Iterator迭代器类型
参数
iter当前迭代器
n后退距离,默认为1
返回
后退n个位置后的迭代器

将迭代器后退n个位置,n必须为非正数。

在文件 iterator.hpp141 行定义.

引用了 advance() , 以及 NEFORCE_DEBUG_VERIFY.

被这些函数引用 cocktail_sort(), cube_root(), hashtable< pair< const Key, T >, Key, HashFcn, select1st< pair< const Key, T > >, EqualKey, Alloc >::erase(), deque< T, Alloc, BufSize >::insert(), deque< T, Alloc, BufSize >::insert(), shift_left(), shift_right(), list< pair< Key, Value > >::sort_if() , 以及 square_root().

◆ to_pointer()

template<typename Iterator>
iter_pointer_t< Iterator > to_pointer ( Iterator iter)
constexpr

将迭代器转换为原始指针

模板参数
Iterator迭代器类型
参数
iter迭代器
返回
原始指针

在文件 iterator.hpp47 行定义.

引用了 is_pointer_v.