|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
移位和修改算法的实现 更多...
函数 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr Iterator2 | copy (Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__copy_aux(first, last, result))) |
| 复制范围元素 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr pair< Iterator1, Iterator2 > | copy_n (Iterator1 first, iter_difference_t< Iterator1 > count, Iterator2 result) |
| 复制指定数量的元素 | |
| template<typename Iterator1, typename Iterator2, typename Pred> | |
| constexpr Iterator2 | copy_if (Iterator1 first, Iterator1 last, Iterator2 result, Pred pred) |
| 复制满足谓词的元素 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr Iterator2 | copy_backward (Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__copy_backward_aux(first, last, result))) |
| 反向复制范围元素 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr Iterator2 | move (Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__move_aux(first, last, result))) |
| 移动范围元素 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr Iterator2 | move_backward (Iterator1 first, Iterator1 last, Iterator2 result) |
| 反向移动范围元素 | |
| template<typename Iterator, typename T> | |
| constexpr void | fill (Iterator first, Iterator last, const T &value) noexcept(is_nothrow_assignable_v< iter_value_t< Iterator >, T >) |
| 填充范围元素 | |
| template<typename Iterator, typename T> | |
| constexpr Iterator | fill_n (Iterator first, iter_difference_t< Iterator > n, const T &value) noexcept(is_nothrow_assignable_v< iter_value_t< Iterator >, T >) |
| 填充指定数量的元素 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr void | iter_swap (Iterator1 a, Iterator2 b) noexcept(noexcept(_NEFORCE swap(*a, *b))) |
| 交换迭代器指向的元素 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr Iterator2 | swap_ranges (Iterator1 first1, Iterator1 last1, Iterator2 first2) |
| 交换两个范围的元素 | |
| template<typename Iterator, typename Function> | |
| constexpr Function | for_each (Iterator first, Iterator last, Function f) |
| 对范围元素应用函数 | |
| template<typename Iterator, typename Function> | |
| constexpr Iterator | for_each_n (Iterator first, iter_difference_t< Iterator > n, Function f) |
| 对指定数量的元素应用函数 | |
| template<typename Iterator, typename Generator> | |
| constexpr void | generate (Iterator first, Iterator last, Generator gen) |
| 用生成器的值填充范围 | |
| template<typename Iterator, typename Generator> | |
| constexpr Iterator | generate_n (Iterator first, iter_difference_t< Iterator > n, Generator gen) |
| 用生成器的值填充指定数量的元素 | |
| template<typename Iterator1, typename Iterator2, typename T> | |
| constexpr Iterator2 | replace_copy (Iterator1 first, Iterator1 last, Iterator2 result, const T &old_value, const T &new_value) |
| 替换并复制元素 | |
| template<typename Iterator1, typename Iterator2, typename Predicate, typename T> | |
| constexpr Iterator2 | replace_copy_if (Iterator1 first, Iterator1 last, Iterator2 result, Predicate pred, const T &new_value) |
| 根据谓词替换并复制元素 | |
| template<typename Iterator, typename T> | |
| constexpr void | replace (Iterator first, Iterator last, const T &old_value, const T &new_value) |
| 替换范围元素 | |
| template<typename Iterator, typename Predicate, typename T> | |
| constexpr void | replace_if (Iterator first, Iterator last, Predicate pred, const T &new_value) |
| 根据谓词替换范围元素 | |
| template<typename Iterator> | |
| constexpr void | reverse (Iterator first, Iterator last) |
| 反转范围元素顺序 | |
| template<typename Iterator> | |
| constexpr void | rotate (Iterator first, Iterator middle, Iterator last) |
| 旋转范围元素 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr Iterator2 | rotate_copy (Iterator1 first, Iterator1 middle, Iterator1 last, Iterator2 result) |
| 旋转并复制元素 | |
| template<typename Iterator> | |
| constexpr void | shift_left (Iterator first, Iterator last, iter_difference_t< Iterator > n) |
| 向左移位 | |
| template<typename Iterator> | |
| constexpr void | shift_right (Iterator first, Iterator last, iter_difference_t< Iterator > n) |
| 向右移位 | |
| template<typename Iterator1, typename Iterator2, typename UnaryOperation> | |
| constexpr Iterator2 | transform (Iterator1 first, Iterator1 last, Iterator2 result, UnaryOperation op) noexcept(noexcept(++first) &&noexcept(++result) &&noexcept(*result=op(*first))) |
| 对范围元素应用一元变换 | |
| template<typename Iterator1, typename Iterator2, typename Iterator3, typename BinaryOperation> | |
| constexpr Iterator3 | transform (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator3 result, BinaryOperation binary_op) noexcept(noexcept(++first1) &&noexcept(first2) &&noexcept(++result) &&noexcept(*result=binary_op(*first1, *first2))) |
| 对两个范围元素应用二元变换 | |
| template<typename Iterator1, typename Iterator2, typename BinaryPredicate> | |
| constexpr Iterator2 | unique_copy (Iterator1 first, Iterator1 last, Iterator2 result, BinaryPredicate binary_pred) |
| 复制唯一元素 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr Iterator2 | unique_copy (Iterator1 first, Iterator1 last, Iterator2 result) |
| 复制唯一元素(使用相等比较) | |
| template<typename Iterator> | |
| constexpr Iterator | unique (Iterator first, Iterator last) |
| 移除连续重复元素 | |
| template<typename Iterator, typename BinaryPredicate> | |
| constexpr Iterator | unique (Iterator first, Iterator last, BinaryPredicate binary_pred) |
| 根据谓词移除连续重复元素 | |
移位和修改算法的实现
|
constexprnoexcept |
复制范围元素
| Iterator1 | 输入迭代器类型 |
| Iterator2 | 输出迭代器类型 |
| first | 输入范围起始 |
| last | 输入范围结束 |
| result | 输出范围起始 |
将范围 [first, last) 的元素复制到以 result 开始的位置。 对连续迭代器使用内存移动优化,非连续迭代器使用循环复制。
被这些函数引用 array< byte_t, MAC_LEN >::array(), counting_sort(), deque< T, Alloc, BufSize >::erase(), deque< T, Alloc, BufSize >::erase(), mac_address::mac_address(), merge(), deque< T, Alloc, BufSize >::operator=(), vector< byte_t >::operator=(), rotate_copy(), set_difference(), set_symmetric_difference(), set_union() , 以及 shift_left().
|
constexprnoexcept |
反向复制范围元素
| Iterator1 | 输入迭代器类型 |
| Iterator2 | 输出迭代器类型 |
| first | 输入范围起始 |
| last | 输入范围结束 |
| result | 输出范围结束 |
将范围 [first, last) 的元素反向复制到以 result-1 开始向前的位置。 用于处理目标范围与源范围重叠的情况。
引用了 is_ranges_bid_iter_v.
被这些函数引用 deque< T, Alloc, BufSize >::erase(), deque< T, Alloc, BufSize >::erase(), vector< byte_t >::insert() , 以及 insertion_sort().
|
constexpr |
复制满足谓词的元素
| Iterator1 | 输入迭代器类型 |
| Iterator2 | 输出迭代器类型 |
| Pred | 一元谓词类型 |
| first | 输入范围起始 |
| last | 输入范围结束 |
| result | 输出范围起始 |
| pred | 一元谓词 |
复制范围 [first, last) 中满足谓词 unary_pred 的所有元素。
|
constexpr |
复制指定数量的元素
| Iterator1 | 输入迭代器类型 |
| Iterator2 | 输出迭代器类型 |
| first | 输入起始迭代器 |
| count | 要复制的元素数量 |
| result | 输出起始迭代器 |
从 first 开始复制 count 个元素到 result。 返回复制后的输入和输出结束迭代器。
引用了 count() , 以及 is_ranges_input_iter_v.
|
constexprnoexcept |
填充范围元素
| Iterator | 迭代器类型 |
| T | 值类型 |
| first | 范围起始 |
| last | 范围结束 |
| value | 要填充的值 |
将范围 [first, last) 的所有元素设置为 value。
引用了 is_assignable_v, is_nothrow_assignable_v , 以及 is_ranges_input_iter_v.
被这些函数引用 vector< byte_t >::assign(), bitmap::bitmap(), bitmap::bitmap(), bloom_filter< T, Hash >::clear(), bitmap::insert(), vector< byte_t >::insert(), radix_sort_greater() , 以及 radix_sort_less().
|
constexprnoexcept |
填充指定数量的元素
| Iterator | 迭代器类型 |
| T | 值类型 |
| first | 起始迭代器 |
| n | 要填充的元素数量 |
| value | 要填充的值 |
引用了 is_assignable_v, is_nothrow_assignable_v , 以及 is_ranges_input_iter_v.
被这些函数引用 vector< byte_t >::assign() , 以及 array< byte_t, MAC_LEN >::fill().
|
constexpr |
对范围元素应用函数
| Iterator | 迭代器类型 |
| Function | 函数类型 |
| first | 范围起始 |
| last | 范围结束 |
| f | 要应用的函数 |
对范围 [first, last) 的每个元素应用函数 f。
引用了 is_invocable_v , 以及 is_ranges_input_iter_v.
|
constexpr |
对指定数量的元素应用函数
| Iterator | 迭代器类型 |
| Function | 函数类型 |
| first | 起始迭代器 |
| n | 要处理的元素数量 |
| f | 要应用的函数 |
引用了 is_invocable_v , 以及 is_ranges_input_iter_v.
|
constexpr |
用生成器的值填充范围
| Iterator | 迭代器类型 |
| Generator | 生成器类型 |
| first | 范围起始 |
| last | 范围结束 |
| gen | 生成器函数 |
对范围 [first, last) 的每个元素调用 gen() 并赋值。
引用了 is_assignable_v, is_invocable_v , 以及 is_ranges_input_iter_v.
被这些函数引用 random_lcd::next_float(), random_mt::next_float(), random_lcd::next_int() , 以及 random_mt::next_int().
|
constexpr |
用生成器的值填充指定数量的元素
| Iterator | 迭代器类型 |
| Generator | 生成器类型 |
| first | 起始迭代器 |
| n | 要填充的元素数量 |
| gen | 生成器函数 |
引用了 is_assignable_v, is_invocable_v , 以及 is_ranges_input_iter_v.
|
constexprnoexcept |
交换迭代器指向的元素
| Iterator1 | 第一个迭代器类型 |
| Iterator2 | 第二个迭代器类型 |
| a | 第一个迭代器 |
| b | 第二个迭代器 |
交换两个迭代器指向的元素的值。
引用了 is_ranges_input_iter_v , 以及 swap().
被这些函数引用 adjust_leonardo_heap(), bubble_sort(), cocktail_sort(), lomuto_partition(), next_permutation(), partition(), prev_permutation(), quick_sort(), basic_string< char >::reverse(), reverse(), select_sort(), shuffle(), shuffle() , 以及 swap_ranges().
|
constexprnoexcept |
移动范围元素
| Iterator1 | 输入迭代器类型 |
| Iterator2 | 输出迭代器类型 |
| first | 输入范围起始 |
| last | 输入范围结束 |
| result | 输出范围起始 |
将范围 [first, last) 的元素移动到以 result 开始的位置。 移动后源位置的对象状态是未定义的。
被这些函数引用 env_builder::add(), env_builder::add(), env_document::add_comment(), json_array::add_element(), toml_array::add_element(), json_object::add_member(), toml_table::add_member(), ini_section::add_property(), ini_document::add_section(), timer_scheduler< Clock >::add_task(), env_document::add_variable(), trace_allocator< U >::allocate(), optional< T >::and_then(), optional< T >::and_then(), optional< T & >::and_then(), optional< T & >::and_then(), basic_string< char >::append(), basic_string< char >::append(), basic_string< char >::assign(), async(), atomic< weak_ptr< T > >::atomic(), task< T >::awaiter::await_resume(), barrier< CmplFunc >::barrier(), basic_string< char >::basic_string(), bitmap::bitmap(), check_type(), atomic< shared_ptr< T > >::compare_exchange_strong(), atomic< weak_ptr< T > >::compare_exchange_strong(), atomic< shared_ptr< T > >::compare_exchange_weak(), atomic< shared_ptr< T > >::compare_exchange_weak(), atomic< weak_ptr< T > >::compare_exchange_weak(), atomic< weak_ptr< T > >::compare_exchange_weak(), compressed_pair< IfEmpty, T, Compressed >::compressed_pair(), compressed_pair< IfEmpty, T, false >::compressed_pair(), signal< Types >::connect(), signal< Types >::connect(), signal< Types >::connect(), signal< Types >::connect_filtered(), signal< Types >::connect_if(), signal< Types >::connect_if(), signal< Types >::connect_transformed(), meta_type::constructor(), http_content::content(), http_cookie_name::cookie_name(), logger::debug(), dynamic_pointer_cast(), exception_ptr::ecb::ecb(), signal< Types >::emit_executor(), vector< byte_t >::emplace(), env_variable::env_variable(), vector< byte_t >::erase(), logger::error(), tuple< This, Rest... >::explicit(), tuple< This, Rest... >::explicit(), logger::fatal(), generator< T >::fold(), meta_type::function(), type_builder< T >::function(), type_builder< T >::function(), future< Res >::get(), get(), get(), meta_property::get(), task< T >::get(), get_current_task_group(), hashtable< pair< const Key, T >, Key, HashFcn, select1st< pair< const Key, T > >, EqualKey, Alloc >::hashtable(), hazard_pointer_obj< T, Deleter >::hazard_pointer_obj(), http_method::http_method(), idb_factory::idb_factory(), logger::info(), ini_parser::ini_parser(), deque< T, Alloc, BufSize >::insert(), list< pair< Key, Value > >::insert(), map< Key, T, Compare, Alloc >::insert(), map< Key, T, Compare, Alloc >::insert(), multimap< Key, T, Compare, Alloc >::insert(), multimap< Key, T, Compare, Alloc >::insert(), multiset< Key, Compare, Alloc >::insert(), multiset< Key, Compare, Alloc >::insert(), set< Key, Compare, Alloc >::insert(), set< Key, Compare, Alloc >::insert(), unordered_multimap< Key, T, HashFcn, EqualKey, Alloc >::insert(), unordered_multiset< Value, HashFcn, EqualKey, Alloc >::insert(), vector< byte_t >::insert(), hashtable< pair< const Key, T >, Key, HashFcn, select1st< pair< const Key, T > >, EqualKey, Alloc >::insert_equal(), rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::insert_equal(), rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::insert_equal(), hashtable< pair< const Key, T >, Key, HashFcn, select1st< pair< const Key, T > >, EqualKey, Alloc >::insert_unique(), rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::insert_unique(), rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::insert_unique(), meta_function::invoke(), exception_ptr::make_exception_ptr, make_reverse_iterator(), make_shared(), map< Key, T, Compare, Alloc >::map(), meta_function::meta_function(), meta_property::meta_property(), http_method::method(), multimap< Key, T, Compare, Alloc >::multimap(), multiset< Key, Compare, Alloc >::multiset(), mysql_factory::mysql_factory(), path_tree::node::node(), binder_front< decay_t< Func >, decay_t< Args >... >::operator()(), binder_front< decay_t< Func >, decay_t< Args >... >::operator()(), formatter< T, enable_if_t< is_floating_point_v< T > > >::operator()(), optional< T >::operator*(), optional< T >::operator*(), basic_string< char >::operator+=(), back_insert_iterator< Container >::operator=(), basic_string< char >::operator=(), compressed_pair< IfEmpty, T, Compressed >::operator=(), compressed_pair< IfEmpty, T, Compressed >::operator=(), compressed_pair< IfEmpty, T, false >::operator=(), exception_ptr::operator=(), front_insert_iterator< Container >::operator=(), function< Res(Args...)>::operator=(), future< Res >::operator=(), http_content::operator=(), http_cookie_name::operator=(), http_method::operator=(), http_method::operator=(), insert_iterator< Container >::operator=(), map< Key, T, Compare, Alloc >::operator=(), multimap< Key, T, Compare, Alloc >::operator=(), multiset< Key, Compare, Alloc >::operator=(), optional< T >::operator=(), optional< T >::operator=(), optional< T >::operator=(), packaged_task< Res(Args...)>::operator=(), promise< Res >::operator=(), promise< Res & >::operator=(), promise< void >::operator=(), rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::operator=(), scoped_connection::operator=(), scoped_thread::operator=(), unordered_map< Key, T, HashFcn, EqualKey, Alloc >::operator=(), unordered_multimap< Key, T, HashFcn, EqualKey, Alloc >::operator=(), unordered_multiset< Value, HashFcn, EqualKey, Alloc >::operator=(), unordered_set< Value, HashFcn, EqualKey, Alloc >::operator=(), map< Key, T, Compare, Alloc >::operator[](), optional< T >::optional(), optional< T >::optional(), optional< T >::optional(), optional< T >::or_else(), optional< T & >::or_else(), pair< const Key, T >::pair(), path_tree::path_tree(), pgsql_factory::pgsql_factory(), vector< byte_t >::pop_back_v(), priority_queue< T, Sequence, Compare >::priority_queue(), priority_queue< T, Sequence, Compare >::priority_queue(), meta_type::property(), type_builder< T >::property(), priority_queue< T, Sequence, Compare >::push(), queue< T, Sequence >::push(), stack< T, Sequence >::push(), deque< T, Alloc, BufSize >::push_back(), local_queue::push_back(), vector< byte_t >::push_back(), deque< T, Alloc, BufSize >::push_front(), queue< T, Sequence >::queue(), rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::rb_tree(), plugin_deleter::rebind(), redis_factory::redis_factory(), scoped_connection::release(), basic_string< char >::repeat(), bitmap::reserve(), shared_ptr< periodic_task_state >::reset(), unique_ptr< T[], Deleter >::reset(), unique_ptr<::X509, x509_deleter >::reset(), hazard_pointer_domain::retire(), task< T >::promise_type::return_value(), reverse_iterator< base_iterator >::reverse_iterator(), scope_exit< Func >::scope_exit(), scope_success< Func >::scope_success(), meta_property::set(), set< Key, Compare, Alloc >::set(), dns_client::set_config(), ini_section::set_name(), ini_section::set_property(), env_variable::set_value(), ini_property::set_value(), env_document::set_variable(), shell_sort(), shift_left(), shift_right(), sqlite_factory::sqlite_factory(), ssl_socket::ssl_socket(), stack< T, Sequence >::stack(), type_builder< T >::static_function(), color::swap(), optional< T >::swap(), thread::thread(), to_string< char >(), to_u16string< char16_t >(), to_u32string< char32_t >(), to_u8string< char8_t >(), to_wstring< wchar_t >(), logger::trace(), optional< T >::transform(), optional< T >::transform(), optional< T & >::transform(), optional< T & >::transform(), tree_barrier< CmplFunc >::tree_barrier(), iobject< T >::try_parse(), unordered_map< Key, T, HashFcn, EqualKey, Alloc >::unordered_map(), unordered_multimap< Key, T, HashFcn, EqualKey, Alloc >::unordered_multimap(), unordered_multiset< Value, HashFcn, EqualKey, Alloc >::unordered_multiset(), unordered_set< Value, HashFcn, EqualKey, Alloc >::unordered_set(), json_builder::value(), optional< T >::value(), optional< T >::value(), toml_builder::value(), toml_builder::value(), optional< T >::value_or(), optional< T & >::value_or(), toml_builder::value_string(), atomic< shared_ptr< T > >::wait(), atomic< weak_ptr< T > >::wait(), barrier< CmplFunc >::wait(), condition_variable::wait_for(), logger::warn(), packaged_task< Res(Args...)>::~packaged_task(), promise< Res >::~promise(), promise< Res & >::~promise(), promise< void >::~promise() , 以及 unique_ptr<::X509, x509_deleter >::~unique_ptr().
|
constexpr |
反向移动范围元素
| Iterator1 | 输入迭代器类型 |
| Iterator2 | 输出迭代器类型 |
| first | 输入范围起始 |
| last | 输入范围结束 |
| result | 输出范围结束 |
将范围 [first, last) 的元素反向移动到以 result-1 开始向前的位置。 用于处理目标范围与源范围重叠的情况。
引用了 is_ranges_bid_iter_v.
被这些函数引用 vector< byte_t >::emplace(), vector< byte_t >::erase() , 以及 shift_right().
|
constexpr |
替换范围元素
| Iterator | 迭代器类型 |
| T | 值类型 |
| first | 范围起始 |
| last | 范围结束 |
| old_value | 要替换的旧值 |
| new_value | 要替换的新值 |
将范围 [first, last) 中等于 old_value 的所有元素替换为 new_value。
引用了 is_assignable_v , 以及 is_ranges_fwd_iter_v.
|
constexpr |
替换并复制元素
| Iterator1 | 输入迭代器类型 |
| Iterator2 | 输出迭代器类型 |
| T | 值类型 |
| first | 输入范围起始 |
| last | 输入范围结束 |
| result | 输出范围起始 |
| old_value | 要替换的旧值 |
| new_value | 要替换的新值 |
将范围 [first, last) 的元素复制到 result,同时将等于 old_value 的元素替换为 new_value。
引用了 is_assignable_v , 以及 is_ranges_fwd_iter_v.
|
constexpr |
根据谓词替换并复制元素
| Iterator1 | 输入迭代器类型 |
| Iterator2 | 输出迭代器类型 |
| Predicate | 谓词类型 |
| T | 值类型 |
| first | 输入范围起始 |
| last | 输入范围结束 |
| result | 输出范围起始 |
| pred | 替换谓词 |
| new_value | 要替换的新值 |
将范围 [first, last) 的元素复制到 result,同时将满足 pred 的元素替换为 new_value。
引用了 is_assignable_v, is_invocable_v , 以及 is_ranges_fwd_iter_v.
|
constexpr |
根据谓词替换范围元素
| Iterator | 迭代器类型 |
| Predicate | 谓词类型 |
| T | 值类型 |
| first | 范围起始 |
| last | 范围结束 |
| pred | 替换谓词 |
| new_value | 要替换的新值 |
将范围 [first, last) 中满足 pred 的所有元素替换为 new_value。
引用了 is_assignable_v, is_invocable_v , 以及 is_ranges_fwd_iter_v.
|
constexpr |
反转范围元素顺序
| Iterator | 迭代器类型 |
| first | 范围起始 |
| last | 范围结束 |
将范围 [first, last) 的元素顺序反转。
引用了 is_ranges_bid_iter_v, is_ranges_rnd_iter_v , 以及 iter_swap().
|
constexpr |
旋转范围元素
| Iterator | 迭代器类型 |
| first | 范围起始 |
| middle | 旋转中心 |
| last | 范围结束 |
将范围 [first, last) 旋转,使 middle 成为新的第一个元素。 旋转后范围变为 [middle, last) + [first, middle)。
引用了 is_ranges_fwd_iter_v.
|
constexpr |
|
constexpr |
向左移位
| Iterator | 迭代器类型 |
| first | 范围起始 |
| last | 范围结束 |
| n | 移位数量 |
将范围 [first, last) 的元素向左移动 n 个位置。 移出的元素用默认构造值填充。
引用了 copy(), distance(), end(), initialize(), is_assignable_v, is_ranges_fwd_iter_v, move(), next() , 以及 prev().
|
constexpr |
向右移位
| Iterator | 迭代器类型 |
| first | 范围起始 |
| last | 范围结束 |
| n | 移位数量 |
将范围 [first, last) 的元素向右移动 n 个位置。 移出的元素用默认构造值填充。
引用了 distance(), end(), initialize(), is_assignable_v, is_ranges_bid_iter_v, move(), move_backward(), next() , 以及 prev().
|
constexpr |
交换两个范围的元素
| Iterator1 | 第一个范围迭代器类型 |
| Iterator2 | 第二个范围迭代器类型 |
| first1 | 第一个范围起始 |
| last1 | 第一个范围结束 |
| first2 | 第二个范围起始 |
交换范围 [first1, last1) 和以 first2 开始的范围的对应元素。
引用了 iter_swap().
|
constexprnoexcept |
对范围元素应用一元变换
| Iterator1 | 输入迭代器类型 |
| Iterator2 | 输出迭代器类型 |
| UnaryOperation | 一元操作类型 |
| first | 输入范围起始 |
| last | 输入范围结束 |
| result | 输出范围起始 |
| op | 一元操作函数 |
对范围 [first, last) 的每个元素应用 op,结果存储到 result。
引用了 is_assignable_v, is_invocable_v , 以及 is_ranges_fwd_iter_v.
|
constexprnoexcept |
对两个范围元素应用二元变换
| Iterator1 | 第一个输入迭代器类型 |
| Iterator2 | 第二个输入迭代器类型 |
| Iterator3 | 输出迭代器类型 |
| BinaryOperation | 二元操作类型 |
| first1 | 第一个输入范围起始 |
| last1 | 第一个输入范围结束 |
| first2 | 第二个输入范围起始 |
| result | 输出范围起始 |
| binary_op | 二元操作函数 |
对范围 [first1, last1) 和以 first2 开始的范围的对应元素应用 binary_op, 结果存储到 result。
引用了 is_assignable_v, is_invocable_v , 以及 is_ranges_fwd_iter_v.
|
constexpr |
移除连续重复元素
| Iterator | 迭代器类型 |
| first | 范围起始 |
| last | 范围结束 |
移除范围 [first, last) 中连续的重复元素,保留每个重复组的第一个元素。
引用了 adjacent_find() , 以及 unique_copy().
|
constexpr |
根据谓词移除连续重复元素
| Iterator | 迭代器类型 |
| BinaryPredicate | 二元谓词类型 |
| first | 范围起始 |
| last | 范围结束 |
| binary_pred | 相等性谓词 |
使用指定的二元谓词判断元素是否相等,移除连续的重复元素。
引用了 adjacent_find() , 以及 unique_copy().
|
constexpr |
复制唯一元素(使用相等比较)
| Iterator1 | 输入迭代器类型 |
| Iterator2 | 输出迭代器类型 |
| first | 输入范围起始 |
| last | 输入范围结束 |
| result | 输出范围起始 |
引用了 unique_copy().
|
constexpr |
复制唯一元素
| Iterator1 | 输入迭代器类型 |
| Iterator2 | 输出迭代器类型 |
| BinaryPredicate | 二元谓词类型 |
| first | 输入范围起始 |
| last | 输入范围结束 |
| result | 输出范围起始 |
| binary_pred | 相等性谓词 |
复制范围 [first, last) 中的元素到 result,跳过连续的重复元素。 只有与前一个元素不重复的元素才会被复制。
引用了 is_invocable_v , 以及 is_ranges_fwd_iter_v.
被这些函数引用 unique(), unique() , 以及 unique_copy().