The following functions are defined in <algorithm> or <numeric> , 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 certain 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) |