CPP facilitates a number of functions that can be applied on a range of elements. Some of these are:
Binary search
FUNCTION  USES 
binary_search  To test if the values in the range exists in a sorted sequence or not. 
equal_range  To get the subrange for the equal elements. 
lower_bound  To get the lower bound element of the range. 
upper_bound  To get the upper bound element of the range. 
Heap
FUNCTION  USES 
is_heap  To check whether the range is a heap. 
is_heap_until  To check the position till which a range is a heap. 
make_heap  To create a heap. 
pop_heap  To pop new elements in the heap. 
push_heap  To push new elements in the heap. 
sort_heap  To sort the heap. 
Merge
FUNCTION  USES 
includes  To check whether the sorted range includes another range or not. 
inplace_merge  To merge two consecutive ranges that are sorted. 
merge  To merge two ranges that are in a sorted order. 
set_union  To get the union of two ranges that is sorted. 
set_intersection  To get the intersection of two ranges that is sorted. 
set_difference  To get the difference of two ranges that is sorted. 
set_symmetric_difference  To get the symmetric difference of two ranges that is sorted. 
Min/Max
FUNCTION  USES 
min  To get the smallest element of the range. 
max  To get the largest element of the range. 
minmax  To get the smallest and largest element of the range. 
min_element  To get the smallest element of the range. 
max_element  To get the largest element of the range. 
minmax_element  To get the smallest and largest element of the range. 
Modifying sequence operations:
FUNCTION  USES 
copy  To copy the range of elements. 
copy_n  To copy n elements of the range. 
copy_if  To copy the elements of the range if a certain condition is fulfilled. 
copy_backward  To copy the elements in a backward order. 
fill  To fill the values in the range with a value. 
fill_n  To fill the values in the sequence. 
generate  To generate the values of the range. 
generate_n  To generate the values of the sequence. 
iter_swap  To swap the values of two iterators under reference. 
move  To move the ranges of elements. 
move_backward  To move the range of elements in the backward order. 
replace  To replace the values in the range with a specific value. 
replace_if  To replace the value of the range if a certain condition is fulfilled. 
replace_copy  To copy the range of values by replacing with an element. 
replace_copy_if  To copy the range of values by replacing with an element if a certain condition is fulfilled. 
remove_copy  To copy the values of the range by removing them. 
remove_copy_if  To copy the values of the range by removing them if a condition is fulfilled. 
reverse  To reverse the range. 
reverse_copy  To copy the range by reversing values. 
rotate  To rotate the elements of the range in left direction. 
rotate_copy  To copy the elements of the range which is rotated left. 
random_shuffle  To shuffle the range randomly. 
remove_if  To remove the values of the range if a condition is fulfilled. 
remove  To remove the values from the range. 
shuffle  To shuffle the range randomly with the help of a generator. 
swap  To swap the value of two objects. 
swap_ranges  To swap the value of two ranges. 
transform  To transform all the values in a range. 
unique_copy  To copy the unique elements of the range. 
unique  To identify the unique element of the range. 
Nonmodifying sequence operations:
FUNCTION  USES 
all_of  To test a condition to all the elements of the range. 
any_of  To test a condition to some or any of the elements of the range. 
adjacent_find  To make a search for finding the equal and adjacent elements in a range. 
count  To get the count of a value in the range. 
count_if  To get the count of values that satisfies a condition. 
equal  To check if the two ranges have all elements equal. 
find_if  To find an element in the range. 
find_if_not  To find an element in the range but in the opposite way as the above one. 
find_end  To get the last element of the range. 
find_first_of  The find for the element that satisfies a condition and occurs at the first. 
for_each  To apply an operation to all the elements of the range. 
find  To find a value in the range. 
is_permutation  To check whether the range in reference is a permutation of some other range. 
mismatch

To get the value in sequence which is the first mismatch. 
none_of  To check if none of the elements follow the condition or not. 
search  To search for the subsequence in a range. 
search_n  To search the range for the occurrence of an element. 
Partitions
FUNCTION  USES 
is_partitioned  To deduce whether the range is partitioned or not. 
partition  To partition the range. 
partition_copy  To copy the range after partition. 
partition_point  To return the partition point for a range. 
stable_partition  To partition the range in two stable halves. 
Sorting
FUNCTION  USES 
is_sorted  To check whether the range is sorted or not. 
is_sorted_until  To check till which element a range is sorted. 
nth_element  To sort the elements in the range. 
partial_sort_copy  To copy the elements of the range after sorting it. 
partial_sort  To partially sort the elements of the range. 
stable_sort  To sort the elements in the range maintaining the relative equivalent order. 
sort  To sort all the elements in a range. 