NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
修改算法

移位和修改算法的实现 更多...

修改算法 的协作图:

函数

template<typename Iterator1, typename Iterator2>
constexpr Iterator2 neforce::copy (Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__copy_aux(first, last, result)))
 复制范围元素
template<typename Iterator1, typename Iterator2>
constexpr Iterator2 neforce::copy_n (Iterator1 first, iter_difference_t< Iterator1 > count, Iterator2 result)
 复制指定数量的元素
template<typename Iterator1, typename Iterator2, typename Pred>
constexpr Iterator2 neforce::copy_if (Iterator1 first, Iterator1 last, Iterator2 result, Pred pred)
 复制满足谓词的元素
template<typename Iterator1, typename Iterator2>
constexpr Iterator2 neforce::copy_backward (Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__copy_backward_aux(first, last, result)))
 反向复制范围元素
template<typename Iterator1, typename Iterator2>
constexpr Iterator2 neforce::move (Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__move_aux(first, last, result)))
 移动范围元素
template<typename Iterator1, typename Iterator2>
constexpr Iterator2 neforce::move_backward (Iterator1 first, Iterator1 last, Iterator2 result)
 反向移动范围元素
template<typename Iterator, typename T>
constexpr void neforce::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 neforce::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 neforce::iter_swap (Iterator1 a, Iterator2 b) noexcept(noexcept(_NEFORCE swap(*a, *b)))
 交换迭代器指向的元素
template<typename Iterator1, typename Iterator2>
constexpr Iterator2 neforce::swap_ranges (Iterator1 first1, Iterator1 last1, Iterator2 first2)
 交换两个范围的元素
template<typename Iterator, typename Function>
constexpr Function neforce::for_each (Iterator first, Iterator last, Function f)
 对范围元素应用函数
template<typename Iterator, typename Function>
constexpr Iterator neforce::for_each_n (Iterator first, iter_difference_t< Iterator > n, Function f)
 对指定数量的元素应用函数
template<typename Iterator, typename Generator>
constexpr void neforce::generate (Iterator first, Iterator last, Generator gen)
 用生成器的值填充范围
template<typename Iterator, typename Generator>
constexpr Iterator neforce::generate_n (Iterator first, iter_difference_t< Iterator > n, Generator gen)
 用生成器的值填充指定数量的元素
template<typename Iterator1, typename Iterator2, typename T>
constexpr Iterator2 neforce::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 neforce::replace_copy_if (Iterator1 first, Iterator1 last, Iterator2 result, Predicate pred, const T &new_value)
 根据谓词替换并复制元素
template<typename Iterator, typename T>
constexpr void neforce::replace (Iterator first, Iterator last, const T &old_value, const T &new_value)
 替换范围元素
template<typename Iterator, typename Predicate, typename T>
constexpr void neforce::replace_if (Iterator first, Iterator last, Predicate pred, const T &new_value)
 根据谓词替换范围元素
template<typename Iterator>
constexpr void neforce::reverse (Iterator first, Iterator last)
 反转范围元素顺序
template<typename Iterator>
constexpr Iterator neforce::rotate (Iterator first, Iterator middle, Iterator last)
 旋转范围元素
template<typename Iterator1, typename Iterator2>
constexpr Iterator2 neforce::rotate_copy (Iterator1 first, Iterator1 middle, Iterator1 last, Iterator2 result)
 旋转并复制元素
template<typename Iterator>
constexpr Iterator neforce::shift_left (Iterator first, Iterator last, iter_difference_t< Iterator > n)
 向左移位
template<typename Iterator>
constexpr Iterator neforce::shift_right (Iterator first, Iterator last, iter_difference_t< Iterator > n)
 向右移位
template<typename Iterator1, typename Iterator2, typename UnaryOperation>
constexpr Iterator2 neforce::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 neforce::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 neforce::unique_copy (Iterator1 first, Iterator1 last, Iterator2 result, BinaryPredicate binary_pred)
 复制唯一元素
template<typename Iterator1, typename Iterator2>
constexpr Iterator2 neforce::unique_copy (Iterator1 first, Iterator1 last, Iterator2 result)
 复制唯一元素(使用相等比较)
template<typename Iterator, typename BinaryPredicate>
constexpr Iterator neforce::unique (Iterator first, Iterator last, BinaryPredicate binary_pred)
 根据谓词移除连续重复元素
template<typename Iterator>
constexpr Iterator neforce::unique (Iterator first, Iterator last)
 移除连续重复元素

详细描述

移位和修改算法的实现

函数说明

◆ copy()

template<typename Iterator1, typename Iterator2>
Iterator2 neforce::copy ( Iterator1 first,
Iterator1 last,
Iterator2 result )
constexprnoexcept

复制范围元素

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
参数
first输入范围起始
last输入范围结束
result输出范围起始
返回
输出范围结束迭代器

将范围 [first, last) 的元素复制到以 result 开始的位置。 对连续迭代器使用内存移动优化,非连续迭代器使用循环复制。

在文件 shift.hpp90 行定义.

引用了 copy(), is_iter_v , 以及 is_ranges_input_iter_v.

被这些函数引用 neforce::array< byte_t, MAC_LEN >::array(), copy(), neforce::deque< T, Alloc, BufSize >::erase(), neforce::deque< T, Alloc, BufSize >::erase(), neforce::mac_address::mac_address(), merge(), neforce::uint128_t::operator%=(), neforce::uint128_t::operator/=(), neforce::deque< T, Alloc, BufSize >::operator=(), neforce::vector< Value, Alloc >::operator=(), rotate_copy(), set_difference(), set_symmetric_difference() , 以及 set_union().

◆ copy_backward()

template<typename Iterator1, typename Iterator2>
Iterator2 neforce::copy_backward ( Iterator1 first,
Iterator1 last,
Iterator2 result )
constexprnoexcept

反向复制范围元素

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
参数
first输入范围起始
last输入范围结束
result输出范围结束
返回
输出范围起始

将范围 [first, last) 的元素反向复制到以 result-1 开始向前的位置。 用于处理目标范围与源范围重叠的情况。

在文件 shift.hpp245 行定义.

引用了 copy_backward() , 以及 is_ranges_bid_iter_v.

被这些函数引用 copy_backward(), neforce::deque< T, Alloc, BufSize >::erase(), neforce::deque< T, Alloc, BufSize >::erase() , 以及 insertion_sort().

◆ copy_if()

template<typename Iterator1, typename Iterator2, typename Pred>
Iterator2 neforce::copy_if ( Iterator1 first,
Iterator1 last,
Iterator2 result,
Pred pred )
constexpr

复制满足谓词的元素

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
Pred一元谓词类型
参数
first输入范围起始
last输入范围结束
result输出范围起始
pred一元谓词
返回
输出范围结束迭代器

复制范围 [first, last) 中满足谓词 unary_pred 的所有元素。

在文件 shift.hpp171 行定义.

引用了 copy_if(), is_iter_v , 以及 is_ranges_input_iter_v.

被这些函数引用 copy_if().

◆ copy_n()

template<typename Iterator1, typename Iterator2>
Iterator2 neforce::copy_n ( Iterator1 first,
iter_difference_t< Iterator1 > count,
Iterator2 result )
constexpr

复制指定数量的元素

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
参数
first输入起始迭代器
count要复制的元素数量
result输出起始迭代器
返回
输出范围结束迭代器

从 first 开始复制 count 个元素到 result。 返回复制后的输入和输出结束迭代器。

在文件 shift.hpp151 行定义.

引用了 copy_n(), count(), is_iter_v , 以及 is_ranges_input_iter_v.

被这些函数引用 copy_n().

◆ fill()

template<typename Iterator, typename T>
void neforce::fill ( Iterator first,
Iterator last,
const T & value )
constexprnoexcept

填充范围元素

模板参数
Iterator迭代器类型
T值类型
参数
first范围起始
last范围结束
value要填充的值

将范围 [first, last) 的所有元素设置为 value。

在文件 shift.hpp398 行定义.

引用了 fill(), is_assignable_v, is_nothrow_assignable_v , 以及 is_ranges_input_iter_v.

被这些函数引用 neforce::vector< Value, Alloc >::assign(), neforce::bitmap::bitmap(), neforce::bloom_filter< T, Hash >::clear(), fill(), neforce::bitmap::insert() , 以及 neforce::vector< Value, Alloc >::insert().

◆ fill_n()

template<typename Iterator, typename T>
Iterator neforce::fill_n ( Iterator first,
iter_difference_t< Iterator > n,
const T & value )
constexprnoexcept

填充指定数量的元素

模板参数
Iterator迭代器类型
T值类型
参数
first起始迭代器
n要填充的元素数量
value要填充的值
返回
填充后的结束迭代器

在文件 shift.hpp418 行定义.

引用了 fill_n(), is_assignable_v, is_nothrow_assignable_v , 以及 is_ranges_input_iter_v.

被这些函数引用 neforce::vector< Value, Alloc >::assign(), neforce::bitmap::bitmap(), neforce::array< byte_t, MAC_LEN >::fill(), fill_n() , 以及 neforce::vector< Value, Alloc >::insert().

◆ for_each()

template<typename Iterator, typename Function>
Function neforce::for_each ( Iterator first,
Iterator last,
Function f )
constexpr

对范围元素应用函数

模板参数
Iterator迭代器类型
Function函数类型
参数
first范围起始
last范围结束
f要应用的函数
返回
传入的函数对象

对范围 [first, last) 的每个元素应用函数 f。

在文件 shift.hpp478 行定义.

引用了 for_each(), is_invocable_v , 以及 is_ranges_input_iter_v.

被这些函数引用 for_each().

◆ for_each_n()

template<typename Iterator, typename Function>
Iterator neforce::for_each_n ( Iterator first,
iter_difference_t< Iterator > n,
Function f )
constexpr

对指定数量的元素应用函数

模板参数
Iterator迭代器类型
Function函数类型
参数
first起始迭代器
n要处理的元素数量
f要应用的函数
返回
处理后的迭代器

在文件 shift.hpp498 行定义.

引用了 for_each_n(), is_invocable_v , 以及 is_ranges_input_iter_v.

被这些函数引用 for_each_n().

◆ generate()

template<typename Iterator, typename Generator>
void neforce::generate ( Iterator first,
Iterator last,
Generator gen )
constexpr

用生成器的值填充范围

模板参数
Iterator迭代器类型
Generator生成器类型
参数
first范围起始
last范围结束
gen生成器函数

对范围 [first, last) 的每个元素调用 gen() 并赋值。

在文件 shift.hpp521 行定义.

引用了 generate(), is_assignable_v, is_invocable_v , 以及 is_ranges_input_iter_v.

被这些函数引用 generate().

◆ generate_n()

template<typename Iterator, typename Generator>
Iterator neforce::generate_n ( Iterator first,
iter_difference_t< Iterator > n,
Generator gen )
constexpr

用生成器的值填充指定数量的元素

模板参数
Iterator迭代器类型
Generator生成器类型
参数
first起始迭代器
n要填充的元素数量
gen生成器函数
返回
填充后的迭代器

在文件 shift.hpp542 行定义.

引用了 generate_n(), is_assignable_v, is_invocable_v , 以及 is_ranges_input_iter_v.

被这些函数引用 generate_n().

◆ iter_swap()

template<typename Iterator1, typename Iterator2>
void neforce::iter_swap ( Iterator1 a,
Iterator2 b )
constexprnoexcept

交换迭代器指向的元素

模板参数
Iterator1第一个迭代器类型
Iterator2第二个迭代器类型
参数
a第一个迭代器
b第二个迭代器

交换两个迭代器指向的元素的值。

在文件 shift.hpp440 行定义.

引用了 is_ranges_input_iter_v, iter_swap() , 以及 swap().

被这些函数引用 adjust_leonardo_heap(), bubble_sort(), cocktail_sort(), iter_swap(), lomuto_partition(), next_permutation(), partition(), prev_permutation(), neforce::basic_string< char >::reverse(), reverse(), select_sort(), shuffle(), shuffle() , 以及 swap_ranges().

◆ move()

template<typename Iterator1, typename Iterator2>
Iterator2 neforce::move ( Iterator1 first,
Iterator1 last,
Iterator2 result )
constexprnoexcept

移动范围元素

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
参数
first输入范围起始
last输入范围结束
result输出范围起始
返回
输出范围结束迭代器

将范围 [first, last) 的元素移动到以 result 开始的位置。 移动后源位置的对象状态是未定义的。

在文件 shift.hpp312 行定义.

引用了 is_ranges_input_iter_v , 以及 move().

被这些函数引用 neforce::env_builder::add(), neforce::env_builder::add(), neforce::http::reverse_proxy_filter::add_backend(), neforce::http::health_check_filter::add_check(), neforce::tui::component_base::add_child(), neforce::env_document::add_comment(), neforce::json_array::add_element(), neforce::toml_array::add_element(), neforce::yaml_sequence::add_element(), neforce::http::authentication_filter::add_excluded_path(), neforce::http::authentication_filter::add_included_path(), neforce::json_object::add_member(), neforce::toml_table::add_member(), neforce::yaml_mapping::add_member(), neforce::ini_section::add_property(), neforce::reflect::meta_type::add_property(), neforce::http::http_client_request::add_query_param(), neforce::ini_document::add_section(), neforce::http::reverse_proxy_filter::add_skip_response_header(), neforce::http::http_server::add_sni_host(), neforce::timer_scheduler< Clock >::add_task(), neforce::env_document::add_variable(), neforce::trace_allocator< U >::allocate(), neforce::optional< T >::and_then(), neforce::optional< T >::and_then(), neforce::optional< T & >::and_then(), neforce::optional< T & >::and_then(), neforce::basic_string< char >::append(), neforce::basic_string< char >::append(), neforce::basic_string< char >::assign(), async(), neforce::async_stream::async_read(), neforce::file_async::async_read(), neforce::file_async::async_read(), neforce::file_async::async_read(), neforce::tcp_socket::async_receive(), neforce::tcp_socket::async_receive(), neforce::tcp_socket::async_send(), neforce::tcp_socket::async_send(), neforce::file_async::async_write(), neforce::file_async::async_write(), neforce::file_async::async_write(), neforce::atomic< shared_ptr< T > >::atomic(), neforce::atomic< weak_ptr< T > >::atomic(), neforce::http::authentication_filter::authentication_filter(), neforce::task< T >::awaiter::await_resume(), neforce::virtual_thread_task< T >::await_resume(), neforce::barrier< CmplFunc >::barrier(), neforce::basic_string< char >::basic_string(), neforce::basic_timer< steady_clock >::basic_timer(), neforce::tui::bgcolor(), neforce::bitmap::bitmap(), neforce::bitmap::bitmap(), neforce::cancellation_slot::cancellation_slot(), neforce::generator< T >::chain(), check_type(), neforce::reflect::meta_type::cloner(), neforce::tui::color(), neforce::atomic< shared_ptr< T > >::compare_exchange_strong(), neforce::atomic< weak_ptr< T > >::compare_exchange_strong(), neforce::atomic< shared_ptr< T > >::compare_exchange_weak(), neforce::atomic< shared_ptr< T > >::compare_exchange_weak(), neforce::atomic< weak_ptr< T > >::compare_exchange_weak(), neforce::atomic< weak_ptr< T > >::compare_exchange_weak(), neforce::compressed_pair< IfEmpty, T, Compressed >::compressed_pair(), neforce::compressed_pair< IfEmpty, T, false >::compressed_pair(), neforce::signal< T >::connect(), neforce::signal< T >::connect(), neforce::signal< T >::connect(), neforce::signal< T >::connect_dynamic(), neforce::signal< T >::connect_filtered(), neforce::signal< T >::connect_if(), neforce::signal< T >::connect_if(), neforce::signal< T >::connect_transformed(), const_pointer_cast(), neforce::tui::const_ref< T >::const_ref(), neforce::reflect::meta_type::constructor(), neforce::reflect::meta_type::container_get(), neforce::reflect::meta_type::container_insert(), neforce::reflect::meta_type::container_insert_kv(), neforce::reflect::meta_type::container_size(), neforce::http::http_content::content(), neforce::http::http_cookie_name::cookie_name(), neforce::http::cors_filter::cors_filter(), neforce::tui::component< P >::create_state(), neforce::logger::debug(), neforce::strand::dispatch(), neforce::dns_record::dns_record(), dynamic_pointer_cast(), neforce::exception_ptr::ecb::ecb(), neforce::signal< T >::emit_executor(), neforce::vector< Value, Alloc >::emplace(), neforce::flat_hashtable< pair< Key, T >, Key, HashFcn, select1st< pair< Key, T > >, EqualKey, Alloc >::emplace_equal(), neforce::sparse_vector< Key, pair< Key, T >, select1st< pair< Key, T > >, Compare, Alloc >::emplace_equal(), neforce::sparse_vector< Key, pair< Key, T >, select1st< pair< Key, T > >, Compare, Alloc >::emplace_equal_hint(), neforce::flat_hashtable< pair< Key, T >, Key, HashFcn, select1st< pair< Key, T > >, EqualKey, Alloc >::emplace_unique(), neforce::sparse_vector< Key, pair< Key, T >, select1st< pair< Key, T > >, Compare, Alloc >::emplace_unique(), neforce::sparse_vector< Key, pair< Key, T >, select1st< pair< Key, T > >, Compare, Alloc >::emplace_unique_hint(), neforce::reflect::meta_type::enum_info(), neforce::env_parser::env_parser(), neforce::env_variable::env_variable(), neforce::vector< Value, Alloc >::erase(), neforce::logger::error(), neforce::executor::execute(), neforce::io_context::executor::execute(), neforce::thread_pool_executor::execute(), neforce::executor::executor(), neforce::tuple< This, Rest... >::explicit(), neforce::tuple< This, Rest... >::explicit(), neforce::logger::fatal(), neforce::generator< T >::filter(), neforce::repository< T, Connect >::find_all(), neforce::repository< T, Connect >::find_page(), neforce::repository< T, Connect >::find_where(), neforce::flat_hashtable< pair< Key, T >, Key, HashFcn, select1st< pair< Key, T > >, EqualKey, Alloc >::flat_hashtable(), neforce::flat_unordered_map< Key, T, HashFcn, EqualKey, Alloc >::flat_unordered_map(), neforce::flat_unordered_multimap< Key, T, HashFcn, EqualKey, Alloc >::flat_unordered_multimap(), neforce::flat_unordered_multiset< Value, HashFcn, EqualKey, Alloc >::flat_unordered_multiset(), neforce::flat_unordered_set< Value, HashFcn, EqualKey, Alloc >::flat_unordered_set(), neforce::generator< T >::fold(), neforce::reflect::meta_type::function(), neforce::reflect::type_builder< T >::function(), neforce::reflect::type_builder< T >::function(), neforce::future< size_t >::future(), neforce::future< size_t >::get(), get(), get(), neforce::task< T >::get(), neforce::compressed_pair< IfEmpty, T, Compressed >::get_base(), neforce::compressed_pair< IfEmpty, T, Compressed >::get_base(), neforce::compressed_pair< IfEmpty, T, false >::get_base(), neforce::compressed_pair< IfEmpty, T, false >::get_base(), get_current_task_group(), neforce::unique_ptr<::X509, x509_deleter >::get_deleter(), neforce::unique_ptr<::X509, x509_deleter >::get_deleter(), neforce::virtual_thread_task< T >::get_result(), neforce::tcp_server_base::handle_client(), neforce::hashtable< pair< const Key, T >, Key, HashFcn, select1st< pair< const Key, T > >, EqualKey, Alloc >::hashtable(), neforce::hazard_pointer_obj< T, Deleter >::hazard_pointer_obj(), neforce::http::http_client::http_client(), neforce::http::http_content::http_content(), neforce::http::http_cookie_name::http_cookie_name(), neforce::http::http_method::http_method(), neforce::idb_factory::idb_factory(), neforce::logger::info(), neforce::ini_parser::ini_parser(), neforce::ini_section::ini_section(), neforce::deque< T, Alloc, BufSize >::insert(), neforce::flat_unordered_map< Key, T, HashFcn, EqualKey, Alloc >::insert(), neforce::flat_unordered_multimap< Key, T, HashFcn, EqualKey, Alloc >::insert(), neforce::flat_unordered_multiset< Value, HashFcn, EqualKey, Alloc >::insert(), neforce::flat_unordered_set< Value, HashFcn, EqualKey, Alloc >::insert(), neforce::http::route_trie::insert(), neforce::list< pair< Key, Value > >::insert(), neforce::map< Key, T, Compare, Alloc >::insert(), neforce::map< Key, T, Compare, Alloc >::insert(), neforce::multimap< Key, T, Compare, Alloc >::insert(), neforce::multimap< Key, T, Compare, Alloc >::insert(), neforce::multiset< Key, Compare, Alloc >::insert(), neforce::multiset< Key, Compare, Alloc >::insert(), neforce::set< Key, Compare, Alloc >::insert(), neforce::set< Key, Compare, Alloc >::insert(), neforce::sparse_map< Key, T, Compare, Alloc >::insert(), neforce::sparse_map< Key, T, Compare, Alloc >::insert(), neforce::sparse_multimap< Key, T, Compare, Alloc >::insert(), neforce::sparse_multimap< Key, T, Compare, Alloc >::insert(), neforce::sparse_multiset< Key, Compare, Alloc >::insert(), neforce::sparse_multiset< Key, Compare, Alloc >::insert(), neforce::sparse_set< Key, Compare, Alloc >::insert(), neforce::sparse_set< Key, Compare, Alloc >::insert(), neforce::unordered_multimap< Key, T, HashFcn, EqualKey, Alloc >::insert(), neforce::unordered_multiset< Value, HashFcn, EqualKey, Alloc >::insert(), neforce::vector< Value, Alloc >::insert(), neforce::flat_hashtable< pair< Key, T >, Key, HashFcn, select1st< pair< Key, T > >, EqualKey, Alloc >::insert_equal(), neforce::hashtable< pair< const Key, T >, Key, HashFcn, select1st< pair< const Key, T > >, EqualKey, Alloc >::insert_equal(), neforce::rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::insert_equal(), neforce::rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::insert_equal(), neforce::sparse_vector< Key, pair< Key, T >, select1st< pair< Key, T > >, Compare, Alloc >::insert_equal(), neforce::sparse_vector< Key, pair< Key, T >, select1st< pair< Key, T > >, Compare, Alloc >::insert_equal(), neforce::insert_iterator< Container >::insert_iterator(), neforce::flat_hashtable< pair< Key, T >, Key, HashFcn, select1st< pair< Key, T > >, EqualKey, Alloc >::insert_unique(), neforce::hashtable< pair< const Key, T >, Key, HashFcn, select1st< pair< const Key, T > >, EqualKey, Alloc >::insert_unique(), neforce::rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::insert_unique(), neforce::rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::insert_unique(), neforce::sparse_vector< Key, pair< Key, T >, select1st< pair< Key, T > >, Compare, Alloc >::insert_unique(), neforce::sparse_vector< Key, pair< Key, T >, select1st< pair< Key, T > >, Compare, Alloc >::insert_unique(), iota(), neforce::json_parser::json_parser(), neforce::lazy_thread::lazy_thread(), neforce::basic_string< char >::lowercase(), neforce::exception_ptr::make_exception_ptr, make_reverse_iterator(), make_shared(), neforce::generator< T >::map(), neforce::map< Key, T, Compare, Alloc >::map(), neforce::reflect::meta_function::meta_function(), neforce::reflect::meta_property::meta_property(), neforce::http::http_method::method(), move(), move(), move_if_noexcept(), neforce::multimap< Key, T, Compare, Alloc >::multimap(), neforce::multiset< Key, Compare, Alloc >::multiset(), neforce::path_tree::node::node(), neforce::tui::state< T >::on_change(), neforce::daemon::on_child_exit(), neforce::daemon::on_reload(), neforce::daemon::on_start(), neforce::daemon::on_stop(), neforce::binder_front< decay_t< Func >, decay_t< Args >... >::operator()(), neforce::binder_front< decay_t< Func >, decay_t< Args >... >::operator()(), neforce::formatter< T, enable_if_t< is_floating_point_v< T > > >::operator()(), neforce::optional< T >::operator*(), neforce::optional< T >::operator*(), neforce::utf8_iterator::operator++(), neforce::basic_string< char >::operator+=(), neforce::back_insert_iterator< Container >::operator=(), neforce::basic_string< char >::operator=(), neforce::basic_timer< steady_clock >::operator=(), neforce::bitmap::operator=(), neforce::compressed_pair< IfEmpty, T, Compressed >::operator=(), neforce::compressed_pair< IfEmpty, T, Compressed >::operator=(), neforce::compressed_pair< IfEmpty, T, false >::operator=(), neforce::exception_ptr::operator=(), neforce::flat_unordered_map< Key, T, HashFcn, EqualKey, Alloc >::operator=(), neforce::flat_unordered_multimap< Key, T, HashFcn, EqualKey, Alloc >::operator=(), neforce::flat_unordered_multiset< Value, HashFcn, EqualKey, Alloc >::operator=(), neforce::flat_unordered_set< Value, HashFcn, EqualKey, Alloc >::operator=(), neforce::front_insert_iterator< Container >::operator=(), neforce::function< Res(Args...)>::operator=(), neforce::future< size_t >::operator=(), neforce::http::http_content::operator=(), neforce::http::http_cookie_name::operator=(), neforce::http::http_method::operator=(), neforce::http::http_method::operator=(), neforce::insert_iterator< Container >::operator=(), neforce::map< Key, T, Compare, Alloc >::operator=(), neforce::multimap< Key, T, Compare, Alloc >::operator=(), neforce::multiset< Key, Compare, Alloc >::operator=(), neforce::optional< T >::operator=(), neforce::optional< T >::operator=(), neforce::optional< T >::operator=(), neforce::packaged_task< Res(Args...)>::operator=(), neforce::promise< Res >::operator=(), neforce::promise< Res & >::operator=(), neforce::promise< void >::operator=(), neforce::rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::operator=(), neforce::scope_connection::operator=(), neforce::scope_thread::operator=(), neforce::sparse_map< Key, T, Compare, Alloc >::operator=(), neforce::sparse_multimap< Key, T, Compare, Alloc >::operator=(), neforce::sparse_multiset< Key, Compare, Alloc >::operator=(), neforce::sparse_vector< Key, pair< Key, T >, select1st< pair< Key, T > >, Compare, Alloc >::operator=(), neforce::tui::ref< T >::operator=(), neforce::tui::state< T >::operator=(), neforce::unordered_map< string, any >::operator=(), neforce::unordered_multimap< Key, T, HashFcn, EqualKey, Alloc >::operator=(), neforce::unordered_multiset< Value, HashFcn, EqualKey, Alloc >::operator=(), neforce::unordered_set< Value, HashFcn, EqualKey, Alloc >::operator=(), neforce::map< Key, T, Compare, Alloc >::operator[](), neforce::sparse_map< Key, T, Compare, Alloc >::operator[](), neforce::tui::operator|(), neforce::tui::operator|(), neforce::tui::operator|=(), neforce::optional< T >::optional(), neforce::optional< T >::optional(), neforce::optional< T >::optional(), neforce::optional< T >::or_else(), neforce::optional< T & >::or_else(), neforce::pair< Key, T >::pair(), neforce::path_tree::path_tree(), neforce::pgsql_factory::pgsql_factory(), neforce::bounded_queue< T >::pop(), neforce::vector< Value, Alloc >::pop_back_v(), neforce::executor::post(), post(), neforce::strand::post(), neforce::priority_queue< T, Sequence, Compare >::priority_queue(), neforce::priority_queue< T, Sequence, Compare >::priority_queue(), neforce::promise< Res >::promise(), neforce::promise< Res & >::promise(), neforce::promise< void >::promise(), neforce::reflect::meta_type::property(), neforce::reflect::type_builder< T >::property(), neforce::tui::component_base::provide_context(), neforce::bounded_queue< T >::push(), neforce::lock_free_queue< T >::push(), neforce::priority_queue< T, Sequence, Compare >::push(), neforce::queue< T, Sequence >::push(), neforce::stack< T, Sequence >::push(), neforce::deque< T, Alloc, BufSize >::push_back(), neforce::local_queue::push_back(), neforce::vector< Value, Alloc >::push_back(), neforce::deque< T, Alloc, BufSize >::push_front(), neforce::queue< T, Sequence >::queue(), neforce::rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::rb_tree(), neforce::channel< T >::read(), neforce::plugin_deleter::rebind(), neforce::redis_factory::redis_factory(), neforce::tui::ref< T >::ref(), reinterpret_pointer_cast(), neforce::scope_connection::release(), remove(), neforce::tui::component_base::remove_child(), remove_if(), neforce::basic_string< char >::repeat(), neforce::bitmap::reserve(), neforce::shared_ptr< periodic_task_state >::reset(), neforce::unique_ptr< T[], Deleter >::reset(), neforce::unique_ptr<::X509, x509_deleter >::reset(), neforce::hazard_pointer_domain::retire(), neforce::task< T >::promise_type::return_value(), neforce::virtual_thread_task< T >::promise_type::return_value(), neforce::reverse_iterator< Iterator >::reverse_iterator(), neforce::http::reverse_proxy_filter::reverse_proxy_filter(), neforce::http::websocket_server::route(), neforce::scope_connection::scope_connection(), neforce::scope_connection::scope_connection(), neforce::scope_exit< Func >::scope_exit(), neforce::scope_fail< Func >::scope_fail(), neforce::scope_success< Func >::scope_success(), neforce::set< Key, Compare, Alloc >::set(), neforce::http::authentication_filter::set_auth_validator(), neforce::http::reverse_proxy_filter::set_backend_selector(), neforce::http::http2_connection::set_close_handler(), neforce::http::websocket_session::set_close_handler(), neforce::dns_client::set_config(), neforce::http::http_client::set_config(), neforce::tcp_client_base::set_connect_callback(), neforce::http::http_server_response::set_content_type(), neforce::http::http_server_response::set_content_type(), neforce::http::http_server_request::set_cookie(), neforce::http::http_server::set_cookie_name(), neforce::http::http_client::set_default_header(), neforce::tui::event_dispatcher::set_dirty_callback(), neforce::tcp_client_base::set_disconnect_callback(), neforce::tcp_client_base::set_dns_server(), neforce::http::http_client::set_error_callback(), neforce::http::websocket_session::set_error_handler(), neforce::awaitable< Args... >::set_exception(), neforce::awaitable< void >::set_exception(), neforce::http::http_router::set_exception_handler(), neforce::tcp_client_base::set_exception_handler(), neforce::http::http_client_request::set_header(), neforce::http::http_server_request::set_header(), neforce::http::http_server_response::set_header(), neforce::http::reverse_proxy_filter::set_header_rewrite(), neforce::http::websocket_session::set_message_handler(), neforce::http::http_router::set_method_not_allowed_handler(), neforce::ini_section::set_name(), neforce::http::http_router::set_not_found_handler(), neforce::sql_builder::set_param(), neforce::http::http_server_request::set_parameter(), neforce::http::reverse_proxy_filter::set_path_prefix(), neforce::http::http_client::set_progress_callback(), neforce::ini_section::set_property(), neforce::tui::component< P >::set_props(), neforce::http::http_client::set_proxy(), neforce::tui::state< T >::set_quiet(), neforce::http::http_server::set_session_store(), neforce::http::http2_connection::set_stream_handler(), neforce::http::http_server::set_upgrade_handler(), neforce::awaitable< Args... >::set_value(), neforce::env_variable::set_value(), neforce::ini_property::set_value(), neforce::env_document::set_variable(), shell_sort(), shift_left(), neforce::generator< T >::skip(), neforce::sparse_map< Key, T, Compare, Alloc >::sparse_map(), neforce::sparse_multimap< Key, T, Compare, Alloc >::sparse_multimap(), neforce::sparse_multiset< Key, Compare, Alloc >::sparse_multiset(), neforce::sparse_set< Key, Compare, Alloc >::sparse_set(), neforce::sparse_vector< Key, pair< Key, T >, select1st< pair< Key, T > >, Compare, Alloc >::sparse_vector(), neforce::basic_string< char >::split(), neforce::basic_string< char >::split(), neforce::sqlite_factory::sqlite_factory(), neforce::ssl_socket::ssl_socket(), neforce::stack< T, Sequence >::stack(), neforce::thread::start(), neforce::tui::state< T >::state(), neforce::reflect::type_builder< T >::static_function(), static_pointer_cast(), neforce::color::swap(), neforce::optional< T >::swap(), neforce::generator< T >::take(), neforce::tcp_client_base::tcp_client_base(), neforce::thread::thread(), to_string< char >(), to_u16string< char16_t >(), to_u32string< char32_t >(), to_u8string< char8_t >(), to_wstring< wchar_t >(), neforce::toml_parser::toml_parser(), neforce::logger::trace(), neforce::optional< T >::transform(), neforce::optional< T >::transform(), neforce::optional< T & >::transform(), neforce::optional< T & >::transform(), neforce::tree_barrier< CmplFunc >::tree_barrier(), neforce::iobject< T >::try_parse(), neforce::lock_free_queue< T >::try_pop(), neforce::channel< T >::try_read(), neforce::channel< T >::try_write(), neforce::typed_exception_wrapper< Ex >::typed_exception_wrapper(), unique(), neforce::unique_ptr< T[], Deleter >::unique_ptr(), neforce::unordered_map< string, any >::unordered_map(), neforce::unordered_multimap< Key, T, HashFcn, EqualKey, Alloc >::unordered_multimap(), neforce::unordered_multiset< Value, HashFcn, EqualKey, Alloc >::unordered_multiset(), neforce::unordered_set< Value, HashFcn, EqualKey, Alloc >::unordered_set(), neforce::basic_string< char >::uppercase(), neforce::http::http_router::use(), neforce::json_builder::value(), neforce::optional< T >::value(), neforce::optional< T >::value(), neforce::toml_builder::value(), neforce::toml_builder::value(), neforce::yaml_builder::value(), neforce::yaml_builder::value(), neforce::optional< T >::value_or(), neforce::optional< T & >::value_or(), neforce::toml_builder::value_string(), neforce::atomic< shared_ptr< T > >::wait(), neforce::atomic< weak_ptr< T > >::wait(), neforce::barrier< CmplFunc >::wait(), neforce::condition_variable::wait_for(), neforce::logger::warn(), when_all(), neforce::http::http_content::with_charset(), neforce::channel< T >::write(), neforce::yaml_parser::yaml_parser(), neforce::yaml_string::yaml_string(), neforce::generator< T >::promise_type::yield_value(), neforce::packaged_task< Res(Args...)>::~packaged_task(), neforce::promise< Res >::~promise(), neforce::promise< Res & >::~promise() , 以及 neforce::promise< void >::~promise().

◆ move_backward()

template<typename Iterator1, typename Iterator2>
Iterator2 neforce::move_backward ( Iterator1 first,
Iterator1 last,
Iterator2 result )
constexpr

反向移动范围元素

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
参数
first输入范围起始
last输入范围结束
result输出范围结束
返回
输出范围起始

将范围 [first, last) 的元素反向移动到以 result-1 开始向前的位置。 用于处理目标范围与源范围重叠的情况。

在文件 shift.hpp377 行定义.

引用了 is_ranges_bid_iter_v , 以及 move_backward().

被这些函数引用 neforce::vector< Value, Alloc >::emplace(), neforce::vector< Value, Alloc >::erase(), neforce::vector< Value, Alloc >::insert(), move_backward() , 以及 shift_right().

◆ replace()

template<typename Iterator, typename T>
void neforce::replace ( Iterator first,
Iterator last,
const T & old_value,
const T & new_value )
constexpr

替换范围元素

模板参数
Iterator迭代器类型
T值类型
参数
first范围起始
last范围结束
old_value要替换的旧值
new_value要替换的新值

将范围 [first, last) 中等于 old_value 的所有元素替换为 new_value。

在文件 shift.hpp623 行定义.

引用了 is_assignable_v, is_ranges_fwd_iter_v , 以及 replace().

被这些函数引用 replace().

◆ replace_copy()

template<typename Iterator1, typename Iterator2, typename T>
Iterator2 neforce::replace_copy ( Iterator1 first,
Iterator1 last,
Iterator2 result,
const T & old_value,
const T & new_value )
constexpr

替换并复制元素

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
T值类型
参数
first输入范围起始
last输入范围结束
result输出范围起始
old_value要替换的旧值
new_value要替换的新值
返回
输出范围结束

将范围 [first, last) 的元素复制到 result,同时将等于 old_value 的元素替换为 new_value。

在文件 shift.hpp570 行定义.

引用了 is_assignable_v, is_ranges_fwd_iter_v , 以及 replace_copy().

被这些函数引用 replace_copy().

◆ replace_copy_if()

template<typename Iterator1, typename Iterator2, typename Predicate, typename T>
Iterator2 neforce::replace_copy_if ( Iterator1 first,
Iterator1 last,
Iterator2 result,
Predicate pred,
const T & new_value )
constexpr

根据谓词替换并复制元素

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
Predicate谓词类型
T值类型
参数
first输入范围起始
last输入范围结束
result输出范围起始
pred替换谓词
new_value要替换的新值
返回
输出范围结束

将范围 [first, last) 的元素复制到 result,同时将满足 pred 的元素替换为 new_value。

在文件 shift.hpp598 行定义.

引用了 is_assignable_v, is_invocable_v, is_ranges_fwd_iter_v , 以及 replace_copy_if().

被这些函数引用 replace_copy_if().

◆ replace_if()

template<typename Iterator, typename Predicate, typename T>
void neforce::replace_if ( Iterator first,
Iterator last,
Predicate pred,
const T & new_value )
constexpr

根据谓词替换范围元素

模板参数
Iterator迭代器类型
Predicate谓词类型
T值类型
参数
first范围起始
last范围结束
pred替换谓词
new_value要替换的新值

将范围 [first, last) 中满足 pred 的所有元素替换为 new_value。

在文件 shift.hpp647 行定义.

引用了 is_assignable_v, is_invocable_v, is_ranges_fwd_iter_v , 以及 replace_if().

被这些函数引用 replace_if().

◆ reverse()

template<typename Iterator>
void neforce::reverse ( Iterator first,
Iterator last )
constexpr

反转范围元素顺序

模板参数
Iterator迭代器类型
参数
first范围起始
last范围结束

将范围 [first, last) 的元素顺序反转。

在文件 shift.hpp711 行定义.

引用了 is_ranges_bid_iter_v, is_ranges_rnd_iter_v, iter_swap() , 以及 reverse().

被这些函数引用 next_permutation(), prev_permutation() , 以及 reverse().

◆ rotate()

template<typename Iterator>
Iterator neforce::rotate ( Iterator first,
Iterator middle,
Iterator last )
constexpr

旋转范围元素

模板参数
Iterator迭代器类型
参数
first范围起始
middle旋转中心
last范围结束
返回
旋转后原 first 所在位置的迭代器

将范围 [first, last) 旋转,使 middle 成为新的第一个元素。 旋转后范围变为 [middle, last) + [first, middle)。

在文件 shift.hpp838 行定义.

引用了 distance(), is_ranges_fwd_iter_v, next() , 以及 rotate().

被这些函数引用 rotate().

◆ rotate_copy()

template<typename Iterator1, typename Iterator2>
Iterator2 neforce::rotate_copy ( Iterator1 first,
Iterator1 middle,
Iterator1 last,
Iterator2 result )
constexpr

旋转并复制元素

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
参数
first输入范围起始
middle旋转中心
last输入范围结束
result输出范围起始
返回
输出范围结束

将旋转后的范围 [first, last) 复制到 result。

在文件 shift.hpp866 行定义.

引用了 copy() , 以及 rotate_copy().

被这些函数引用 rotate_copy().

◆ shift_left()

template<typename Iterator>
Iterator neforce::shift_left ( Iterator first,
Iterator last,
iter_difference_t< Iterator > n )
constexpr

向左移位

模板参数
Iterator迭代器类型
参数
first范围起始
last范围结束
n移位数量
返回
新逻辑末尾迭代器

将范围 [first, last) 的元素向左移动 n 个位置。 移出的元素被移动,剩余末尾元素处于合法但未指定状态。 如果 n >= distance(first, last),则返回 first(空范围)。

在文件 shift.hpp884 行定义.

引用了 distance(), is_ranges_fwd_iter_v, move(), next() , 以及 shift_left().

被这些函数引用 shift_left().

◆ shift_right()

template<typename Iterator>
Iterator neforce::shift_right ( Iterator first,
Iterator last,
iter_difference_t< Iterator > n )
constexpr

向右移位

模板参数
Iterator迭代器类型
参数
first范围起始
last范围结束
n移位数量
返回
新逻辑起始迭代器

将范围 [first, last) 的元素向右移动 n 个位置。 移出的元素被移动,前部元素处于合法但未指定状态。 如果 n >= distance(first, last),则返回 last(空范围)。

在文件 shift.hpp915 行定义.

引用了 distance(), is_ranges_bid_iter_v, move_backward(), next() , 以及 shift_right().

被这些函数引用 shift_right().

◆ swap_ranges()

template<typename Iterator1, typename Iterator2>
Iterator2 neforce::swap_ranges ( Iterator1 first1,
Iterator1 last1,
Iterator2 first2 )
constexpr

交换两个范围的元素

模板参数
Iterator1第一个范围迭代器类型
Iterator2第二个范围迭代器类型
参数
first1第一个范围起始
last1第一个范围结束
first2第二个范围起始
返回
第二个范围结束迭代器

交换范围 [first1, last1) 和以 first2 开始的范围的对应元素。

在文件 shift.hpp458 行定义.

引用了 iter_swap() , 以及 swap_ranges().

被这些函数引用 swap_ranges().

◆ transform() [1/2]

template<typename Iterator1, typename Iterator2, typename UnaryOperation>
Iterator2 neforce::transform ( Iterator1 first,
Iterator1 last,
Iterator2 result,
UnaryOperation op )
constexprnoexcept

对范围元素应用一元变换

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
UnaryOperation一元操作类型
参数
first输入范围起始
last输入范围结束
result输出范围起始
op一元操作函数
返回
输出范围结束

对范围 [first, last) 的每个元素应用 op,结果存储到 result。

在文件 shift.hpp947 行定义.

引用了 is_assignable_v, is_invocable_v, is_ranges_fwd_iter_v , 以及 transform().

被这些函数引用 neforce::signal< T >::connect_transformed(), neforce::basic_string< char >::lowercase(), neforce::basic_string< char >::lowercase(), transform(), transform(), transform_reduce(), neforce::basic_string< char >::uppercase() , 以及 neforce::basic_string< char >::uppercase().

◆ transform() [2/2]

template<typename Iterator1, typename Iterator2, typename Iterator3, typename BinaryOperation>
Iterator3 neforce::transform ( Iterator1 first1,
Iterator1 last1,
Iterator2 first2,
Iterator3 result,
BinaryOperation binary_op )
constexprnoexcept

对两个范围元素应用二元变换

模板参数
Iterator1第一个输入迭代器类型
Iterator2第二个输入迭代器类型
Iterator3输出迭代器类型
BinaryOperation二元操作类型
参数
first1第一个输入范围起始
last1第一个输入范围结束
first2第二个输入范围起始
result输出范围起始
binary_op二元操作函数
返回
输出范围结束

对范围 [first1, last1) 和以 first2 开始的范围的对应元素应用 binary_op, 结果存储到 result。

在文件 shift.hpp979 行定义.

引用了 is_assignable_v, is_invocable_v, is_ranges_fwd_iter_v , 以及 transform().

◆ unique() [1/2]

template<typename Iterator>
Iterator neforce::unique ( Iterator first,
Iterator last )
constexpr

移除连续重复元素

模板参数
Iterator迭代器类型
参数
first范围起始
last范围结束
返回
新逻辑结束迭代器

移除范围 [first, last) 中连续的重复元素,保留每个重复组的第一个元素。

在文件 shift.hpp1084 行定义.

引用了 unique().

◆ unique() [2/2]

template<typename Iterator, typename BinaryPredicate>
Iterator neforce::unique ( Iterator first,
Iterator last,
BinaryPredicate binary_pred )
constexpr

根据谓词移除连续重复元素

模板参数
Iterator迭代器类型
BinaryPredicate二元谓词类型
参数
first范围起始
last范围结束
binary_pred相等性谓词
返回
新逻辑结束迭代器

使用指定的二元谓词判断元素是否相等,移除连续的重复元素。

在文件 shift.hpp1059 行定义.

引用了 adjacent_find(), move() , 以及 unique().

被这些函数引用 unique() , 以及 unique().

◆ unique_copy() [1/2]

template<typename Iterator1, typename Iterator2>
Iterator2 neforce::unique_copy ( Iterator1 first,
Iterator1 last,
Iterator2 result )
constexpr

复制唯一元素(使用相等比较)

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
参数
first输入范围起始
last输入范围结束
result输出范围起始
返回
输出范围结束

在文件 shift.hpp1043 行定义.

引用了 unique_copy().

◆ unique_copy() [2/2]

template<typename Iterator1, typename Iterator2, typename BinaryPredicate>
Iterator2 neforce::unique_copy ( Iterator1 first,
Iterator1 last,
Iterator2 result,
BinaryPredicate binary_pred )
constexpr

复制唯一元素

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
BinaryPredicate二元谓词类型
参数
first输入范围起始
last输入范围结束
result输出范围起始
binary_pred相等性谓词
返回
输出范围结束

复制范围 [first, last) 中的元素到 result,跳过连续的重复元素。 只有与前一个元素不重复的元素才会被复制。

在文件 shift.hpp1013 行定义.

引用了 is_invocable_v, is_ranges_fwd_iter_v , 以及 unique_copy().

被这些函数引用 unique_copy() , 以及 unique_copy().