|
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) |
| 计算两个迭代器之间的距离 | |
迭代器操作函数的实现
|
constexpr |
将迭代器前进指定距离
| Iterator | 迭代器类型 |
| Distance | 距离类型 |
| i | 迭代器引用 |
| n | 前进距离 |
根据迭代器类型使用不同的前进策略:
在文件 iterator.hpp 第 106 行定义.
引用了 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().
|
constexpr |
计算两个迭代器之间的距离
| Iterator | 迭代器类型 |
| first | 起始迭代器 |
| last | 结束迭代器 |
根据迭代器类型使用不同的计算策略:
在文件 iterator.hpp 第 201 行定义.
引用了 is_iter_v , 以及 is_ranges_rnd_iter_v.
被这些函数引用 basic_string< char >::append(), basic_string_view< typename Traits::char_type, Traits >::basic_string_view(), neforce::lz4_compressor::compress(), zlib_compressor::compress(), rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::count(), counting_sort(), neforce::lz4_compressor::decompress(), zlib_compressor::decompress(), equal_range(), rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::erase(), vector< byte_t >::erase(), memory_view< byte_t >::explicit(), find_end(), inplace_merge(), basic_string< char >::insert(), bitmap::insert(), vector< byte_t >::insert(), is_permutation(), lower_bound(), make_leonardo_heap(), merge_sort(), pop_leonardo_heap(), push_leonardo_heap(), radix_sort_greater(), radix_sort_less(), reduce(), search(), file::seek(), shell_sort(), shift_left(), shift_right(), shuffle(), sort_leonardo_heap(), temporary_buffer< Iterator >::temporary_buffer(), tim_sort(), transform_reduce() , 以及 upper_bound().
|
constexpr |
获取迭代器的后一个位置
| Iterator | 迭代器类型 |
| iter | 当前迭代器 |
| n | 前进距离,默认为1 |
将迭代器前进n个位置,n必须为非负数。
在文件 iterator.hpp 第 157 行定义.
引用了 advance() , 以及 NEFORCE_DEBUG_VERIFY.
被这些函数引用 adjacent_find(), bubble_sort(), hashtable< pair< const Key, T >, Key, HashFcn, select1st< pair< const Key, T > >, EqualKey, Alloc >::clear(), retire_list::clear(), cocktail_sort(), deque< T, Alloc, BufSize >::erase(), hashtable< pair< const Key, T >, Key, HashFcn, select1st< pair< const Key, T > >, EqualKey, Alloc >::erase(), list< pair< Key, Value > >::insert(), list< pair< Key, Value > >::insert(), is_sorted(), is_sorted_until(), lock_free_queue< T >::pop(), reduce(), hashtable< pair< const Key, T >, Key, HashFcn, select1st< pair< const Key, T > >, EqualKey, Alloc >::rehash(), remove(), remove_if(), shift_left(), shift_right(), shuffle(), shuffle(), transform_reduce(), lock_free_queue< T >::try_pop(), list< pair< Key, Value > >::unique_if() , 以及 hazard_pointer_domain::~hazard_pointer_domain().
|
constexpr |
获取迭代器的前一个位置
| Iterator | 迭代器类型 |
| iter | 当前迭代器 |
| n | 后退距离,默认为1 |
将迭代器后退n个位置,n必须为非正数。
在文件 iterator.hpp 第 141 行定义.
引用了 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().
|
constexpr |