reference url:http://www.cplusplus.com/reference/algorithm
reference url:https://blog.csdn.net/Swust_Zeng_zhuo_K/article/details/80113384
Standard Template Library: Algorithms
The header
A range is any sequence of objects that can be accessed through iterators or pointers, such as an array or an instance of some of the . Notice though, that algorithms operate through iterators directly on the values, not affecting in any way the structure of any possible container (it never affects the size or storage allocation of the container).
Functions
Non-modifying sequence operations
any_of
Test if any element in range fulfills condition (function template )
none_of
Test if no elements fulfill condition (function template )
for_each
Apply function to range (function template )
find
Find value in range (function template )
find_if
Find element in range (function template )
find_if_not
Find element in range (negative condition) (function template )
find_end
Find last subsequence in range (function template )
find_first_of
Find element from set in range (function template )
adjacent_find
Find equal adjacent elements in range (function template )
count
Count appearances of value in range (function template )
count_if
Return number of elements in range satisfying condition (function template )
mismatch
Return first position where two ranges differ (function template )
equal
Test whether the elements in two ranges are equal (function template )
is_permutation
Test whether range is permutation of another (function template )
search
Search range for subsequence (function template )
search_n
Search range for elements (function template )
Modifying sequence operations
copy_n
Copy elements (function template )
copy_if
Copy certain elements of range (function template )
copy_backward
Copy range of elements backward (function template )
move
Move range of elements (function template )
move_backward
Move range of elements backward (function template )
swap
Exchange values of two objects (function template )
swap_ranges
Exchange values of two ranges (function template )
iter_swap
Exchange values of objects pointed to by two iterators (function template )
transform
Transform range (function template )
replace
Replace value in range (function template )
replace_if
Replace values in range (function template )
replace_copy
Copy range replacing value (function template )
replace_copy_if
Copy range replacing value (function template )
fill
Fill range with value (function template )
fill_n
Fill sequence with value (function template )
generate
Generate values for range with function (function template )
generate_n
Generate values for sequence with function (function template )
remove
Remove value from range (function template )
remove_if
Remove elements from range (function template )
remove_copy
Copy range removing value (function template )
remove_copy_if
Copy range removing values (function template )
unique
Remove consecutive duplicates in range (function template )
unique_copy
Copy range removing duplicates (function template )
reverse
Reverse range (function template )
reverse_copy
Copy range reversed (function template )
rotate
Rotate left the elements in range (function template )
rotate_copy
Copy range rotated left (function template )
random_shuffle
Randomly rearrange elements in range (function template )
shuffle
Randomly rearrange elements in range using generator (function template )
Partitions
partition
Partition range in two (function template )
stable_partition
Partition range in two - stable ordering (function template )
partition_copy
Partition range into two (function template )
partition_point
Get partition point (function template )
Sorting
stable_sort
Sort elements preserving order of equivalents (function template )
partial_sort
Partially sort elements in range (function template )
partial_sort_copy
Copy and partially sort range (function template )
is_sorted
Check whether range is sorted (function template )
is_sorted_until
Find first unsorted element in range (function template )
nth_element
Sort element in range (function template )
Binary search
upper_bound
Return iterator to upper bound (function template )
equal_range
Get subrange of equal elements (function template )
binary_search
Test if value exists in sorted sequence (function template )
Merge
inplace_merge
Merge consecutive sorted ranges (function template )
includes
Test whether sorted range includes another sorted range (function template )
set_union
Union of two sorted ranges (function template )
set_intersection
Intersection of two sorted ranges (function template )
set_difference
Difference of two sorted ranges (function template )
set_symmetric_difference
Symmetric difference of two sorted ranges (function template )
Heap
pop_heap
Pop element from heap range (function template )
make_heap
Make heap from range (function template )
sort_heap
Sort elements of heap (function template )
is_heap
Test if range is heap (function template )
is_heap_until
Find first element not in heap order (function template )
Min/max
max
Return the largest (function template )
minmax
Return smallest and largest elements (function template )
min_element
Return smallest element in range (function template )
max_element
Return largest element in range (function template )
minmax_element
Return smallest and largest elements in range (function template )
Other
next_permutation
Transform range to next permutation (function template )
prev_permutation
Transform range to previous permutation (function template )
Generalized numeric operations
This header describes a set of algorithms to perform certain operations on sequences of numeric values.
Due to their flexibility, they can also be adapted for other kinds of sequences.
Functions
accumulate
Accumulate values in range (function template )
adjacent_difference
Compute adjacent difference of range (function template )
inner_product
Compute cumulative inner product of range (function template )
partial_sum
Compute partial sums of range (function template )
iota
Store increasing sequence (function template )
Function objects
Function objects
They are typically used as arguments to functions, such as predicates or comparison functions passed to standard algorithms
Functions
These functions create objects of wrapper classes based on its arguments:
cref
Construct reference_wrapper to const (function template )
mem_fn
Convert member function to function object (function template )
not1
Return negation of unary function object (function template )
not2
Return negation of binary function object (function template )
ref
Construct reference_wrapper (function template )
Classes
Wrapper classes
Wrapper classes
function
Function wrapper (class template )
reference_wrapper
Reference wrapper (class template )
unary_negate
Negate unary function object class (class template )
Operator classes
Operator classes
bit_or
Bitwise OR function object class (class template )
bit_xor
Bitwise XOR function object class (class template )
divides
Division function object class (class template )
equal_to
Function object class for equality comparison (class template )
greater
Function object class for greater-than inequality comparison (class template )
greater_equal
Function object class for greater-than-or-equal-to comparison (class template )
less
Function object class for less-than inequality comparison (class template )
less_equal
Function object class for less-than-or-equal-to comparison (class template )
logical_and
Logical AND function object class (class template )
logical_not
Logical NOT function object class (class template )
logical_or
Logical OR function object class (class template )
minus
Subtraction function object class (class template )
modulus
Modulus function object class (class template )
multiplies
Multiplication function object class (class template )
negate
Negative function object class (class template )
not_equal_to
Function object class for non-equality comparison (class template )
plus
Addition function object class (class template )
Other classes
bad_function_call
Exception thrown on bad call (class )
hash
Default hash function object class (class template )
is_bind_expression
Is bind expression (class template )
is_placeholder
Is placeholder (class template )
Namespaces
placeholders
Bind argument placeholders (namespace )