reference url:http://www.cplusplus.com/reference/algorithm
reference url:https://blog.csdn.net/Swust_Zeng_zhuo_K/article/details/80113384
<algorithm>
Standard Template Library: Algorithms
The header <algorithm>
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
-
Test if any element in range fulfills condition (function template )
-
Test if no elements fulfill condition (function template )
-
Apply function to range (function template )
-
Find value in range (function template )
-
Find element in range (function template )
-
Find element in range (negative condition) (function template )
-
Find last subsequence in range (function template )
-
Find element from set in range (function template )
-
Find equal adjacent elements in range (function template )
-
Count appearances of value in range (function template )
-
Return number of elements in range satisfying condition (function template )
-
Return first position where two ranges differ (function template )
-
Test whether the elements in two ranges are equal (function template )
-
Test whether range is permutation of another (function template )
-
Search range for subsequence (function template )
-
Search range for elements (function template )
Modifying sequence operations
-
Copy elements (function template )
-
Copy certain elements of range (function template )
-
Copy range of elements backward (function template )
-
Move range of elements (function template )
-
Move range of elements backward (function template )
-
Exchange values of two objects (function template )
-
Exchange values of two ranges (function template )
-
Exchange values of objects pointed to by two iterators (function template )
-
Transform range (function template )
-
Replace value in range (function template )
-
Replace values in range (function template )
-
Copy range replacing value (function template )
-
Copy range replacing value (function template )
-
Fill range with value (function template )
-
Fill sequence with value (function template )
-
Generate values for range with function (function template )
-
Generate values for sequence with function (function template )
-
Remove value from range (function template )
-
Remove elements from range (function template )
-
Copy range removing value (function template )
-
Copy range removing values (function template )
-
Remove consecutive duplicates in range (function template )
-
Copy range removing duplicates (function template )
-
Reverse range (function template )
-
Copy range reversed (function template )
-
Rotate left the elements in range (function template )
-
Copy range rotated left (function template )
-
Randomly rearrange elements in range (function template )
-
Randomly rearrange elements in range using generator (function template )
Partitions
-
Partition range in two (function template )
-
Partition range in two - stable ordering (function template )
-
Partition range into two (function template )
-
Get partition point (function template )
Sorting
-
Sort elements preserving order of equivalents (function template )
-
Partially sort elements in range (function template )
-
Copy and partially sort range (function template )
-
Check whether range is sorted (function template )
-
Find first unsorted element in range (function template )
-
Sort element in range (function template )
Binary search
-
Return iterator to upper bound (function template )
-
Get subrange of equal elements (function template )
-
Test if value exists in sorted sequence (function template )
Merge
-
Merge consecutive sorted ranges (function template )
-
Test whether sorted range includes another sorted range (function template )
-
Union of two sorted ranges (function template )
-
Intersection of two sorted ranges (function template )
-
Difference of two sorted ranges (function template )
-
Symmetric difference of two sorted ranges (function template )
Heap
-
Pop element from heap range (function template )
-
Make heap from range (function template )
-
Sort elements of heap (function template )
-
Test if range is heap (function template )
-
Find first element not in heap order (function template )
Min/max
-
Return the largest (function template )
-
Return smallest and largest elements (function template )
-
Return smallest element in range (function template )
-
Return largest element in range (function template )
-
Return smallest and largest elements in range (function template )
Other
-
Transform range to next permutation (function template )
-
Transform range to previous permutation (function template )
<numeric>
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 values in range (function template )
-
Compute adjacent difference of range (function template )
-
Compute cumulative inner product of range (function template )
-
Compute partial sums of range (function template )
-
Store increasing sequence (function template )
<functional>
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:
-
Construct reference_wrapper to const (function template )
-
Convert member function to function object (function template )
-
Return negation of unary function object (function template )
-
Return negation of binary function object (function template )
-
Construct reference_wrapper (function template )
Classes
Wrapper classes
Wrapper classes
-
Function wrapper (class template )
-
Reference wrapper (class template )
-
Negate unary function object class (class template )
Operator classes
Operator classes
-
Bitwise OR function object class (class template )
-
Bitwise XOR function object class (class template )
-
Division function object class (class template )
-
Function object class for equality comparison (class template )
-
Function object class for greater-than inequality comparison (class template )
-
Function object class for greater-than-or-equal-to comparison (class template )
-
Function object class for less-than inequality comparison (class template )
-
Function object class for less-than-or-equal-to comparison (class template )
-
Logical AND function object class (class template )
-
Logical NOT function object class (class template )
-
Logical OR function object class (class template )
-
Subtraction function object class (class template )
-
Modulus function object class (class template )
-
Multiplication function object class (class template )
-
Negative function object class (class template )
-
Function object class for non-equality comparison (class template )
-
Addition function object class (class template )
Other classes
-
Exception thrown on bad call (class )
-
Default hash function object class (class template )
-
Is bind expression (class template )
-
Is placeholder (class template )
Namespaces
-
Bind argument placeholders (namespace )