The following functions are defined in <algorithm> and are part of the std namespace.
| accumulate | sum up a range of elements |
| adjacent_difference | compute the differences between adjacent elements in a range |
| adjacent_find | finds two identical (or some other relationship) items adjacent to each other |
| binary_search | determine if an element exists in a certain range |
| copy | copy some range of elements to a new location |
| copy_backward | copy a range of elements in backwards order |
| count | return the number of elements matching a given value |
| count_if | return the number of elements for which a predicate is true |
| equal | determine if two sets of elements are the same |
| equal_range | search for a range of elements that are all equal to a certain element |
| fill | assign a range of elements a certain value |
| fill_n | assign a value to some number of elements |
| find | find a value in a given range |
| find_end | find the last sequence of elements in a certain range |
| find_first_of | search for any one of a set of elements |
| find_if | find the first element for which a certain predicate is true |
| for_each | apply a function to a range of elements |
| generate | saves the result of a function in a range |
| generate_n | saves the result of N applications of a function |
| includes | returns true if one set is a subset of another |
| inner_product | compute the inner product of two ranges of elements |
| inplace_merge | merge two ordered ranges in-place |
| is_heap | returns true if a given range is a heap |
| iter_swap | swaps the elements pointed to by two iterators |
| lexicographical_compare | returns true if one range is lexicographically less than another |
| lower_bound | search for the first place that a value can be inserted while preserving order |
| make_heap | creates a heap out of a range of elements |
| max | returns the larger of two elements |
| max_element | returns the largest element in a range |
| merge | merge two sorted ranges |
| min | returns the smaller of two elements |
| min_element | returns the smallest element in a range |
| mismatch | finds the first position where two ranges differ |
| next_permutation | generates the next greater lexicographic permutation of a range of elements |
| nth_element | put one element in its sorted location and make sure that no elements to its left are greater than any elements to its right |
| partial_sort | sort the first N elements of a range |
| partial_sort_copy | copy and partially sort a range of elements |
| partial_sum | compute the partial sum of a range of elements |
| partition | divide a range of elements into two groups |
| pop_heap | remove the largest element from a heap |
| prev_permutation | generates the next smaller lexicographic permutation of a range of elements |
| push_heap | add an element to a heap |
| random_shuffle | randomly re-order elements in some range |
| remove | remove elements equal to certain value |
| remove_copy | copy a range of elements omitting those that match a certian value |
| remove_copy_if | create a copy of a range of elements, omitting any for which a predicate is true |
| remove_if | remove all elements for which a predicate is true |
| replace | replace every occurrence of some value in a range with another value |
| replace_copy | copy a range, replacing certain elements with new ones |
| replace_copy_if | copy a range of elements, replacing those for which a predicate is true |
| replace_if | change the values of elements for which a predicate is true |
| reverse | reverse elements in some range |
| reverse_copy | create a copy of a range that is reversed |
| rotate | move the elements in some range to the left by some amount |
| rotate_copy | copy and rotate a range of elements |
| search | search for a range of elements |
| search_n | search for N consecutive copies of an element in some range |
| set_difference | computes the difference between two sets |
| set_intersection | computes the intersection of two sets |
| set_symmetric_difference | computes the symmetric difference between two sets |
| set_union | computes the union of two sets |
| sort | sort a range into ascending order |
| sort_heap | turns a heap into a sorted range of elements |
| stable_partition | divide elements into two groups while preserving their relative order |
| stable_sort | sort a range of elements while preserving order between equal elements |
| swap | swap the values of two objects |
| swap_ranges | swaps two ranges of elements |
| transform | applies a function to a range of elements |
| unique | remove consecutive duplicate elements in a range |
| unique_copy | creates a copy of some range of elements that contains no consecutive duplicates |
| upper_bound | searches for the last place that a value can be inserted while preserving order (first place that is greater than the value) |