Algorithms library

From cppreference.com
< cpp
 
 
 

The algorithms library defines functions for a variety of purposes (e.g. searching, sorting, counting, manipulating) that operate on ranges of elements. Note that a range is defined as [first, last) where last refers to the element past the last element to inspect or modify.

Contents

Non-modifying sequence operations
Defined in header <algorithm>
(C++11)
(C++11)
(C++11)
checks if a predicate is true for all, any or none of the elements in a range
(function template)
applies a function to a range of elements
(function template)
returns the number of elements satisfying specific criteria
(function template)
finds the first position where two ranges differ
(function template)
determines if two sets of elements are the same
(function template)
finds the first element satisfying specific criteria
(function template)
finds the last sequence of elements in a certain range
(function template)
searches for any one of a set of elements
(function template)
finds two identical (or some other relationship) items adjacent to each other
(function template)
searches for a range of elements
(function template)
searches for a number consecutive copies of an element in a range
(function template)
Modifying sequence operations
Defined in header <algorithm>

(C++11)
copies a range of elements to a new location
(function template)
(C++11)
copies a number of elements to a new location
(function template)
copies a range of elements in backwards order
(function template)
(C++11)
moves a range of elements to a new location
(function template)
moves a range of elements to a new location in backwards order
(function template)
assigns a range of elements a certain value
(function template)
assigns a value to a number of elements
(function template)
applies a function to a range of elements
(function template)
saves the result of a function in a range
(function template)
saves the result of N applications of a function
(function template)
removes elements satisfying specific criteria
(function template)
copies a range of elements omitting those that satisfy specific criteria
(function template)
replaces all values satisfying specific criteria with another value
(function template)
copies a range, replacing elements satisfying specific criteria with another value
(function template)
swaps the values of two objects
(function template)
swaps two ranges of elements
(function template)
swaps the elements pointed to by two iterators
(function template)
reverses the order elements in a range
(function template)
creates a copy of a range that is reversed
(function template)
rotates the order of elements in a range
(function template)
copies and rotate a range of elements
(function template)
randomly re-orders elements in a range
(function template)
removes consecutive duplicate elements in a range
(function template)
creates a copy of some range of elements that contains no consecutive duplicates
(function template)
Partitioning operations
Defined in header <algorithm>
determines if the range is partitioned by the given predicate
(function template)
divides a range of elements into two groups
(function template)
copies a range dividing the elements into two groups
(function template)
divides elements into two groups while preserving their relative order
(function template)
locates the partition point of a partitioned range
(function template)
Sorting operations (on sorted ranges)
Defined in header <algorithm>
(C++11)
checks whether a range is sorted into ascending order
(function template)
finds the largest sorted subrange
(function template)
sorts a range into ascending order
(function template)
sorts the first N elements of a range
(function template)
copies and partially sorts a range of elements
(function template)
sorts a range of elements while preserving order between equal elements
(function template)
partially sorts the given range making sure that it is partitioned by the given element
(function template)
Binary search operations (on sorted ranges)
Defined in header <algorithm>
returns an iterator to the first element not less than the given value
(function template)
returns an iterator to the first element greater than a certain value
(function template)
determines if an element exists in a certain range
(function template)
returns range of elements matching a specific key
(function template)
Set operations (on sorted ranges)
Defined in header <algorithm>
merges two sorted ranges
(function template)
merges two ordered ranges in-place
(function template)
returns true if one set is a subset of another
(function template)
computes the difference between two sets
(function template)
computes the intersection of two sets
(function template)
computes the symmetric difference between two sets
(function template)
computes the union of two sets
(function template)
Heap operations
Defined in header <algorithm>
checks if the given range is a heap
(function template)
finds the largest subrange that is heap
(function template)
creates a heap out of a range of elements
(function template)
adds an element to a heap
(function template)
removes the largest element from a heap
(function template)
turns a heap into a sorted range of elements
(function template)
Minimum/maximum operations
Defined in header <algorithm>
returns the larger of two elements
(function template)
returns the largest element in a range
(function template)
returns the smaller of two elements
(function template)
returns the smallest element in a range
(function template)
(C++11)
returns the larger and the smaller of two elements
(function template)
returns the smallest and the largest element in a range
(function template)
returns true if one range is lexicographically less than another
(function template)
determines if a sequence is a permutation of another sequence
(function template)
generates the next greater lexicographic permutation of a range of elements
(function template)
generates the next smaller lexicographic permutation of a range of elements
(function template)
Numeric operations
Defined in header <numeric>
(C++11)
fills a range with successive increments of the starting value
(function template)
sums up a range of elements
(function template)
computes the inner product of two ranges of elements
(function template)
computes the differences between adjacent elements in a range
(function template)
computes the partial sum of a range of elements
(function template)
C library
Defined in header <cstdlib>
sorts a range of elements with unspecified type
(function)
searches an array for an element of unspecified type
(function)