accumulate | Accumulate values in range | N | numeric | O(n) |
adjacent_difference | Compute adjacent difference of range and return to another place | N | numeric | O(n) |
adjacent_find | Find first equal adjacent elements in range | N | algorithm | O(n) |
all_of* | Test condition on all elements in range | N | algorithm | O(n) |
any_of* | Test if any element in range fulfills condition | N | algorithm | O(n) |
binary_search | Test if value exists in sorted sequence | N | algorithm | On average O(logn + 2). On non-random-access iterator is O(n) |
copy | Copy range of elements | N(copy) | algorithm | O(n) |
copy_backward | Copy range of elements backward | N(copy) | algorithm | O(n) |
copy_if* | Copy certain elements of range | N(copy) | algorithm | O(n) |
copy_n* | Copies the first n elements from the range beginning | N(copy) | algorithm | O(n) |
count | Count appearances of value in range | N | algorithm | O(n) |
count_if | Return number of elements in range satisfying condition | N | algorithm | O(n) |
equal | Test whether the elements in two ranges are equal | N | algorithm | O(n) |
equal_range | Get sub range of equal elements | N | algorithm | O(2logn + 1) for random access iterator, otherwise O(n) |
fill | Fill range with value | Y | algorithm | O(n) |
fill_n | Assigns val to the first n elements of the sequence pointed by first | Y | algorithm | O(n) |
find | Find the first element in range | N | algorithm | O(n) |
find_end | Find last subsequence in range | N | algorithm | O(m*(1+n-m)) |
find_first_of | Returns an iterator to the first element in the range [first1,last1) that matches any of the elements in [first2,last2) | N | algorithm | O(nm) |
find_if | Find the first element in range in some condition | N | algorithm | O(n) |
find_if_not* | Find the first element in range in some condition | N | algorithm | O(n) |
for_each | Apply function to range | N | algorithm | O(n) |
generate | Assigns the value returned by successive calls to gen to the elements in the range [first,last) | Y | algorithm | O(n) |
generate_n | Assigns the value returned by successive calls to gen to the first n elements of the sequence pointed by first | Y | algorithm | O(n) |
includes | Test whether sorted range includes another sorted range | N | algorithm | O(n) |
inner_product | Compute cumulative inner product of range | N | numeric | O(n) |
inplace_merge | Merge consecutive sorted ranges | Y | algorithm | O(n) if extra memory is available, otherwise is O(nlogn) |
iota | Store increasing sequence | Y | numeric | O(n) |
is_heap* | Test if range is heap | N | algorithm | O(n) |
is_heap_until* | Find first element not in heap order. | N | algorithm | O(n) |
is_partitioned* | Test whether range is partitioned | Y | algorithm | O(n) |
is_permutation* | Compares the elements in the range [first1,last1) with those in the range beginning at first2, and returns true if they just different permutation | N | algorithm | O(n) |
is_sorted* | Check whether range is sorted | N | algorithm | O(n) |
is_sorted_until* | Find first unsorted element in range | N | algorithm | O(n) |
iter_swap | Swaps the elements pointed to by a and b | Y | algorithm | O(1) |
lexicographical_compare | Compare two range lexicographically. | N | algorithm | O(n) |
lower_bond | Return iterator to lower bound | N | algorithm | O(logn + 1) for random access iterator, otherwise O(n) |
make_heap | Make heap from range | Y | algorithm | O(3n) |
max | Returns the largest of a and b. If both are equivalent, a is returned. | N | algorithm | O(1) |
max_element | Return largest element in range | N | algorithm | O(n) |
merge | Merge sorted ranges | Y | algorithm | O(n) |
min | Returns the smallest of a and b. If both are equivalent, a is returned. | N | algorithm | O(1) |
minmax* | Return smallest and largest elements from give 2 value or initializer | N | algorithm | O(1) |
minmax_element* | Return smallest and largest elements in range | N | algorithm | O(n) |
min_element | Return smallest element in range | N | algorithm | O(n) |
mismatch | Return first position where two ranges differ | N | algorithm | O(n) |
move* | Move range of elements | Y | algorithm | O(n) |
move_backward* | Move range of elements backward | Y | algorithm | O(n) |
next_permutation | Rearranges the elements in the range [first,last) into the next lexicographically greater permutation | Y | algorithm | O(n) |
none_of* | Test if no elements fulfill condition | N | algorithm | O(n) |
nth_element | Find the nth element and put it the exact palce.(quick select) | Y | algorithm | O() |
partial_sort | Partially sort elements in range while the remaining elements are left without any order | Y | algorithm | O(mlogn) |
partial_sort_copy | Copy and partially sort range | Y (if in-place) | algorithm | O(mlogn) |
partial_sum | Compute partial sums of range and return to another place | N | numeric | O(n) |
partition | Partition range in two and the iterator returned points to the first element of the second group. | Y | algorithm | O(n) |
partition_copy* | Partition range into two | N | algorithm | O(n) |
partition_point* | Get partition point and Returns an iterator to the first element in second part | N | algorithm | O(logn + 2) |
pop_heap | Pop element from heap range. Range shrink and value is at end. | Y | algorithm | O(logn) |
prev_permutation | Rearranges the elements in the range [first,last) into the previous lexicographically-ordered permutation. | Y | algorithm | O(n) |
push_heap | Push element into heap range. Range extend | Y | algorithm | O(logn) |
random_shuffle | Randomly rearrange elements in range | Y | algorithm | O(n) |
remove | Removed element equal to val and returns an iterator to the new end of that range. | Y | algorithm | O(n) |
remove_copy | Remove and copy to new place | Y | algorithm | O(n) |
remove_copy_if | Remove in a given condition and copy | Y | algorithm | O(n) |
remove_if | Remove in a given condition | Y | algorithm | O(n) |
replace | Assigns new_value to all the elements that compare equal to old_value | Y | algorithm | O(n) |
replace_copy | Replace and copy | Y | algorithm | O(n) |
replace_copy_if | Replace in a given condition and copy | Y | algorithm | O(n) |
replace_if | Replace in a given condition | Y | algorithm | O(n) |
reverse | Reverses the order of the elements in the range [first,last) | Y | algorithm | O(n) |
reverse_copy | Copies the elements in [first,last) but in reverse order | Y | algorithm | O(n) |
rotate | Rotates the order of the elements and middle becomes the new first element | Y | algorithm | O(n) |
rotate_copy | Rotate and copy | Y | algorithm | O(n) |
search | Search range for subsequence | N | algorithm | O(n*m) |
search_n | Search range for n continue elements | N | algorithm | O(n) |
set_difference | Difference of two sorted ranges | N(copy) | algorithm | O(2(n+m)-1) |
set_intersection | Intersection of two sorted ranges | N(copy) | algorithm | O(2(n+m)-1) |
set_symmetric_difference | Symmetric difference of two sorted ranges | N(copy) | algorithm | O(2(n+m)-1) |
set_union | Union of two sorted ranges | N(copy) | algorithm | O(2(n+m)-1) |
shuffle* | Randomly rearrange elements in range using generator | Y | algorithm | O(n) |
sort | Sort elements in range | Y | algorithm | O(nlogn) |
sort_heap | Sort elements of heap | Y | algorithm | O(nlogn) |
stable_partition | Partition range in two - stable ordering | Y | algorithm | O(n) with enough space. Otherwise O(nlogn) |
stable_sort | Sort elements preserving order of equivalents | Y | algorithm | O(nlogn) with enough space, otherwise O(nlognlogn) |
swap | Exchanges the values of a and b | Y | algorithm | O(1) |
swap_ranges | Exchanges a range of value | Y | algorithm | O(n) |
transform | Transform range | Y | algorithm | O(n) |
unique | Remove consecutive duplicates in range | Y | algorithm | O(n) |
unique_copy | Copy range removing duplicates | Y | algorithm | O(n) |
upper_bond | Return iterator to upper bound. Since [first, last), the value pointed by the iterator must larger than val | N | algorithm | O(logn + 1) for random access iterator, otherwise O(n) |