C++ Algorithms [C++ Reference]
Keywords: stl,algorithm,start
Date: 2010-01-19T05:29:18-0800

[[C++ Algorithms]]
C++ Reference
Translations of this page?:

- en
- br-pt
- cn
- cz
- de
- es
- fr
- it
- jp
- nl
- pl
- ro
- ru
- sk
- tr
- tw

# C++ Algorithms

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)

Edit this page • Old revisions
• • • Login • Index • Recent changes • RSS • cc •