-
Notifications
You must be signed in to change notification settings - Fork 13
Algorithms
disksing edited this page Dec 15, 2019
·
1 revision
Function | Description |
---|---|
AllOf AnyOf NoneOf | checks if a predicate is true for all, any or none of the elements in a range |
ForEach | applies a function to a range of elements |
ForEachN | applies a function object to the first n elements of a sequence |
Count CountIf | returns the number of elements satisfying specific criteria |
Mismatch MismatchBy | finds the first position where two ranges differ |
Find FindIf FindIfNot | finds the first element satisfying specific criteria |
FindEnd FindEndBy | finds the last sequence of elements in a certain range |
FindFirstOf FindFirstOfBy | searches for any one of a set of elements |
AdjacentFind AdjacentFindBy | finds the first two adjacent items that are equal (or satisfy a given predicate) |
Search SearchBy | searches for a range of elements |
SearchN SearchNBy | searches a range for a number of consecutive copies of an element |
Function | Description |
---|---|
Copy CopyIf | copies a range of elements to a new location |
CopyN | copies a number of elements to a new location |
CopyBackward | copies a range of elements in backwards order |
Fill | copy-assigns the given value to every element in a range |
FillN | copy-assigns the given value to N elements in a range |
Transform TransformBinary | applies a function to a range of elements, storing results in a destination range |
Generate | assigns the results of successive function calls to every element in a range |
GenerateN | assigns the results of successive function calls to N elements in a range |
Remove RemoveIf | removes elements satisfying specific criteria |
RemoveCopy RemoveCopyIf | copies a range of elements omitting those that satisfy specific criteria |
Replace ReplaceIf | replaces all values satisfying specific criteria with another value |
ReplaceCopy ReplaceCopyIf | copies a range, replacing elements satisfying specific criteria with another value |
Swap | swaps the values of two iterators |
SwapRanges | swaps two ranges of elements |
Reverse | reverses the order of elements in a range |
ReverseCopy | creates a copy of a range that is reversed |
Rotate | rotates the order of elements in a range |
RotateCopy | copies and rotate a range of elements |
Shuffle | randomly re-orders elements in a range |
Sample | selects n random elements from a sequence |
Unique UniqueIf | removes consecutive duplicate elements in a range |
UniqueCopy UniqueCopyIf | creates a copy of some range of elements that contains no consecutive duplicates |
Function | Description |
---|---|
IsPartitioned | determines if the range is partitioned by the given predicate |
Partition | divides a range of elements into two groups |
PartitionCopy | copies a range dividing the elements into two groups |
StablePartition | divides elements into two groups while preserving their relative order |
PartitionPoint | locates the partition point of a partitioned range |
Function | Description |
---|---|
IsSorted IsSortedBy | checks whether a range is sorted into ascending order |
IsSortedUntil IsSortedUntilBy | finds the largest sorted subrange |
Sort SortBy | sorts a range into ascending order |
PartialSort PartialSortBy | sorts the first N elements of a range |
PartialSortCopy PartialSortCopyBy | copies and partially sorts a range of elements |
StableSort StableSortBy | sorts a range of elements while preserving order between equal elements |
NthElement NthElementBy | partially sorts the given range making sure that it is partitioned by the given element |
Function | Description |
---|---|
LowerBound LowerBoundBy | returns an iterator to the first element not less than the given value |
UpperBound UpperBoundBy | returns an iterator to the first element greater than a certain value |
BinarySearch BinarySearchBy | determines if an element exists in a certain range |
EqualRange EqualRangeBy | returns range of elements matching a specific key |
Function | Description |
---|---|
Merge MergeBy | merges two sorted ranges |
InplaceMerge InplaceMergeBy | merges two ordered ranges in-place |
Function | Description |
---|---|
Includes IncludesBy | returns true if one set is a subset of another |
SetDifference SetDifferenceBy | computes the difference between two sets |
SetIntersection SetIntersectionBy | computes the intersection of two sets |
SetSymmetricDifference SetSymmetricDifferenceBy | computes the symmetric difference between two sets |
SetUnion SetUnionBy | computes the union of two sets |
Function | Description |
---|---|
IsHeap IsHeapBy | checks if the given range is a max heap |
IsHeapUntil IsHeapUntilBy | finds the largest subrange that is a max heap |
MakeHeap MakeHeapBy | creates a max heap out of a range of elements |
PushHeap PushHeapBy | adds an element to a max heap |
PopHeap PopHeapBy | removes the largest element from a max heap |
SortHeap SortHeapBy | turns a max heap into a range of elements sorted in ascending order |
Function | Description |
---|---|
Max MaxBy | returns the greater of the given values |
MaxElement MaxElementBy | returns the largest element in a range |
Min MinBy | returns the smaller of the given values |
MinElement MinElementBy | returns the smallest element in a range |
Minmax MinmaxBy | returns the smaller and larger of two elements |
MinmaxElement MinmaxElementBy | returns the smallest and the largest elements in a range |
Clamp ClampBy | clamps a value between a pair of boundary values |
Function | Description |
---|---|
Equal EqualBy | determines if two sets of elements are the same |
LexicographicalCompare LexicographicalCompareBy | returns true if one range is lexicographically less than another |
LexicographicalCompareThreeWay LexicographicalCompareThreeWayBy | compares two ranges using three-way comparison |
Function | Description |
---|---|
IsPermutation IsPermutationBy | determines if a sequence is a permutation of another sequence |
NextPermutation NextPermutationBy | generates the next greater lexicographic permutation of a range of elements |
PrevPermutation PrevPermutationBy | generates the next smaller lexicographic permutation of a range of elements |
Function | Description |
---|---|
Iota IotaBy | fills a range with successive increments of the starting value |
Accumulate AccumulateBy | sums up a range of elements |
InnerProduct InnerProductBy | computes the inner product of two ranges of elements |
AdjacentDifference AdjacentDifferenceBy | computes the differences between adjacent elements in a range |
PartialSum PartialSumBy | computes the partial sum of a range of elements |
ExclusiveScan ExclusiveScanBy | similar to PartialSum, excludes the ith input element from the ith sum |
InclusiveScan InclusiveScanBy | similar to PartialSum, includes the ith input element in the ith sum |
TransformExclusiveScan TransformExclusiveScanBy | applies a function, then calculates exclusive scan |
TransformInclusiveScan TransformInclusiveScanBy | applies a function, then calculates inclusive scan |