Console Library 8.0.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
algorithm.h File Reference

算法头文件,包装 STL 的标准算法为函数对象。 More...

#include <algorithm>
#include <numeric>

Go to the source code of this file.

Classes

struct  console::alg::for_each_t
struct  console::alg::count_t
struct  console::alg::count_if_t
struct  console::alg::min_element_t
struct  console::alg::max_element_t
struct  console::alg::minmax_element_t
struct  console::alg::find_t
struct  console::alg::find_if_t
struct  console::alg::find_if_not_t
struct  console::alg::search_n_t
struct  console::alg::search_t
struct  console::alg::find_end_t
struct  console::alg::find_first_of_t
struct  console::alg::adjacent_find_t
struct  console::alg::equal_t
struct  console::alg::is_permutation_t
struct  console::alg::mismatch_t
struct  console::alg::lexicographical_compare_t
struct  console::alg::is_sorted_t
struct  console::alg::is_sorted_until_t
struct  console::alg::is_partitioned_t
struct  console::alg::partition_point_t
struct  console::alg::all_of_t
struct  console::alg::any_of_t
struct  console::alg::none_of_t
struct  console::alg::copy_t
struct  console::alg::copy_if_t
struct  console::alg::copy_n_t
struct  console::alg::copy_backward_t
struct  console::alg::move_t
struct  console::alg::move_backward_t
struct  console::alg::transform_t
struct  console::alg::merge_t
struct  console::alg::swap_ranges_t
struct  console::alg::fill_t
struct  console::alg::fill_n_t
struct  console::alg::generate_t
struct  console::alg::generate_n_t
struct  console::alg::iota_t
struct  console::alg::replace_t
struct  console::alg::replace_if_t
struct  console::alg::replace_copy_t
struct  console::alg::replace_copy_if_t
struct  console::alg::remove_t
struct  console::alg::remove_if_t
struct  console::alg::remove_copy_t
struct  console::alg::remove_copy_if_t
struct  console::alg::unique_t
struct  console::alg::unique_copy_t
struct  console::alg::reverse_t
struct  console::alg::reverse_copy_t
struct  console::alg::rotate_t
struct  console::alg::rotate_copy_t
struct  console::alg::next_permutation_t
struct  console::alg::prev_permutation_t
struct  console::alg::shuffle_t
struct  console::alg::random_shuffle_t
struct  console::alg::partition_t
struct  console::alg::stable_partition_t
struct  console::alg::partition_copy_t
struct  console::alg::sort_t
struct  console::alg::stable_sort_t
struct  console::alg::partial_sort_t
struct  console::alg::partial_sort_copy_t
struct  console::alg::nth_element_t
struct  console::alg::make_heap_t
struct  console::alg::push_heap_t
struct  console::alg::pop_heap_t
struct  console::alg::sort_heap_t
struct  console::alg::binary_search_t
struct  console::alg::includes_t
struct  console::alg::lower_bound_t
struct  console::alg::upper_bound_t
struct  console::alg::equal_range_t
struct  console::alg::set_union_t
struct  console::alg::set_intersection_t
struct  console::alg::set_difference_t
struct  console::alg::set_symmetric_difference_t
struct  console::alg::inplace_merge_t
struct  console::alg::accumulate_t
struct  console::alg::inner_product_t
struct  console::alg::adjacent_difference_t
struct  console::alg::partial_sum_t

Namespaces

namespace  console
 本库所有组件所在的顶层命名空间。
namespace  console::alg

Macros

#define ALGORITHM(NAME)

Variables

Nonmodifying Algorithm

非更易型算法

static constexpr for_each_t console::alg::for_each
static constexpr count_t console::alg::count
static constexpr count_if_t console::alg::count_if
static constexpr min_element_t console::alg::min_element
static constexpr max_element_t console::alg::max_element
static constexpr minmax_element_t console::alg::minmax_element
static constexpr find_t console::alg::find
static constexpr find_if_t console::alg::find_if
static constexpr find_if_not_t console::alg::find_if_not
static constexpr search_n_t console::alg::search_n
static constexpr search_t console::alg::search
static constexpr find_end_t console::alg::find_end
static constexpr find_first_of_t console::alg::find_first_of
static constexpr adjacent_find_t console::alg::adjacent_find
static constexpr equal_t console::alg::equal
static constexpr is_permutation_t console::alg::is_permutation
static constexpr mismatch_t console::alg::mismatch
static constexpr lexicographical_compare_t console::alg::lexicographical_compare
static constexpr is_sorted_t console::alg::is_sorted
static constexpr is_sorted_until_t console::alg::is_sorted_until
static constexpr is_partitioned_t console::alg::is_partitioned
static constexpr partition_point_t console::alg::partition_point
static constexpr all_of_t console::alg::all_of
static constexpr any_of_t console::alg::any_of
static constexpr none_of_t console::alg::none_of
Modifying Algorithm

更易型算法

static constexpr copy_t console::alg::copy
static constexpr copy_if_t console::alg::copy_if
static constexpr copy_n_t console::alg::copy_n
static constexpr copy_backward_t console::alg::copy_backward
static constexpr move_t console::alg::move
static constexpr move_backward_t console::alg::move_backward
static constexpr transform_t console::alg::transform
static constexpr merge_t console::alg::merge
static constexpr swap_ranges_t console::alg::swap_ranges
static constexpr fill_t console::alg::fill
static constexpr fill_n_t console::alg::fill_n
static constexpr generate_t console::alg::generate
static constexpr generate_n_t console::alg::generate_n
static constexpr iota_t console::alg::iota
static constexpr replace_t console::alg::replace
static constexpr replace_if_t console::alg::replace_if
static constexpr replace_copy_t console::alg::replace_copy
static constexpr replace_copy_if_t console::alg::replace_copy_if
Removing Algorithm

移除型算法

static constexpr remove_t console::alg::remove
static constexpr remove_if_t console::alg::remove_if
static constexpr remove_copy_t console::alg::remove_copy
static constexpr remove_copy_if_t console::alg::remove_copy_if
static constexpr unique_t console::alg::unique
static constexpr unique_copy_t console::alg::unique_copy
Mutating Algorithm

变序型算法

static constexpr reverse_t console::alg::reverse
static constexpr reverse_copy_t console::alg::reverse_copy
static constexpr rotate_t console::alg::rotate
static constexpr rotate_copy_t console::alg::rotate_copy
static constexpr next_permutation_t console::alg::next_permutation
static constexpr prev_permutation_t console::alg::prev_permutation
static constexpr shuffle_t console::alg::shuffle
static constexpr random_shuffle_t console::alg::random_shuffle
static constexpr partition_t console::alg::partition
static constexpr stable_partition_t console::alg::stable_partition
static constexpr partition_copy_t console::alg::partition_copy
Sorting Algorithm

排序算法

static constexpr sort_t console::alg::sort
static constexpr stable_sort_t console::alg::stable_sort
static constexpr partial_sort_t console::alg::partial_sort
static constexpr partial_sort_copy_t console::alg::partial_sort_copy
static constexpr nth_element_t console::alg::nth_element
static constexpr make_heap_t console::alg::make_heap
static constexpr push_heap_t console::alg::push_heap
static constexpr pop_heap_t console::alg::pop_heap
static constexpr sort_heap_t console::alg::sort_heap
Sorted-Range Algorithm

已排序区间算法

static constexpr binary_search_t console::alg::binary_search
static constexpr includes_t console::alg::includes
static constexpr lower_bound_t console::alg::lower_bound
static constexpr upper_bound_t console::alg::upper_bound
static constexpr equal_range_t console::alg::equal_range
static constexpr set_union_t console::alg::set_union
static constexpr set_intersection_t console::alg::set_intersection
static constexpr set_difference_t console::alg::set_difference
static constexpr set_symmetric_difference_t console::alg::set_symmetric_difference
static constexpr inplace_merge_t console::alg::inplace_merge
Numeric Algorithm

数值算法

static constexpr accumulate_t console::alg::accumulate
static constexpr inner_product_t console::alg::inner_product
static constexpr adjacent_difference_t console::alg::adjacent_difference
static constexpr partial_sum_t console::alg::partial_sum

Detailed Description

算法头文件,包装 STL 的标准算法为函数对象。

解决标准库中算法为模板函数无法被存储于对象中的问题, 同时,函数对象的效率略微优于函数指针,提高了效率。

Note
可以接入 Generator 的 algorithm 终端中。
Author
MrXie1109
Date
2026

Macro Definition Documentation

◆ ALGORITHM

#define ALGORITHM ( NAME)
Value:
struct NAME##_t { \
template <class... Args> \
decltype(std::NAME(std::declval<Args>()...)) \
operator()(Args &&...args) const { \
return std::NAME(std::forward<Args>(args)...); \
} \
}; \
static constexpr NAME##_t NAME;