//****************************基本算法*****************************
/*
stl算法总览,不在stl标准规格的sgi专属算法,都以 *加以标记
算法名称 算法用途 质变 所在文件
accumulate 元素累计 否 <stl_numeric.h>
adjacent_difference 相邻元素的差额 是 if in-place <stl_numeric.h>
adjacent_find 查找相邻而重复 否 <stl_algo.h>
(或符合某条件)的元素
binary_search 二分查找 否 <stl_algo.h>
Copy 复制 是 if in-place <stl_algobase.h>
Copy_backward 逆向复制 是 if in-place <stl_algobase.h>
Copy_n * 复制n个元素 是 if in-place <stl_algobase.h>
count 计数 否 <stl_algo.h>
count_if 在特定条件下计数 否 <stl_algo.h>
equal 判断两个区间是否相等 否 <stl_algobase.h>
equal_range 试图在有序区间中寻找
某值(返回一个上下限区间) 否 <stl_algo.h>
fill 改填元素值 是 <stl_algobase.h>
fill_n 改填元素值,n次 是 <stl_algobase.h>
find 循序查找 否 <stl_algo.h>
find_if 循序查找符合特定条件者 否 <stl_algo.h>
find_end 查找某个子序列的最后 否 <stl_algo.h>
一次出现点
find_first_of 查找某些元素的首次出现点 否 <stl_algo.h>
for_each 对区间内的每一个元素施行 否 <stl_algo.h>
某操作
generate 以特定操作之运算结果 是 <stl_algo.h>
填充特定区间内的元素
generate_n 以特定操作之运算结果 是 <stl_algo.h>
填充n个元素
includes 是否涵盖于某序列之中 否 <stl_algo.h>
inner_product 内积 否 <stl_numeric.h>
inplace_merge 合并并就地替换(复写上去) 是 <stl_algo.h>
iota * 在某区间填入某指定值的 是 <stl_numeric.h>
递增序列
is_heap * 判断某区间是否为一个heap 否 <stl_algo.h>
is_sorted * 判断某区间是否已排序 否 <stl_algo.h>
iter_swap 元素互换 是 <stl_algobase.h>
lexicograpghical_ 以字典顺序进行比较 否 <stl_numeric.h>
compare
lower_bound 将指定元素插入区间之内 否 <stl_algo.h>
而不影响区间之原本排序的最低位置
max 最大值 否 <stl_algobase.h>
max_element 最大值所在位置 否 <stl_algo.h>
merge 合并两个序列 是 if in-place <stl_algo.h>
min 最小值 否 <stl_algobase.h>
min_element 最小值所在位置 否 <stl_algo.h>
mismatch 找出不匹配点 否 <stl_algobase.h>
next_permutation 获得下一个排列组合 是 <stl_algo.h>
nth_element 重新安排序列中的第n个 是 <stl_algo.h>
元素的左右两端
partial_sort 局部排序 是 <stl_algo.h>
partial_sort_copy 局部排序并复制到他处 是 if in-place <stl_algo.h>
partial_sum 局部求和 是 if in-place <stl_numeric.h>
partition 分割 是 <stl_algo.h>
prev_permutation 获得前一个排列组合 是 <stl_algo.h>
power * 幂次方。表达式可指定 否 <stl_numeric.h>
random_suffle 随即重排元素 是 <stl_algo.h>
random_sample * 随即取样 是 if in-place <stl_algo.h>
random_sample_n * 随即取样 是 if in-place <stl_algo.h>
remove 删除某类元素(但不删除) 是 <stl_algo.h>
remove_copy 删除某类元素并将结果 是 <stl_algo.h>
复制到另一个容器
remove_if 有条件地删除某类元素 是 <stl_algo.h>
remove_copy_if 有条件地删除某类元素并将 是 <stl_algo.h>
结果复制到另一个容器
replace 替换某类元素 是 <stl_algo.h>
replace_copy 替换某类元素,并将结果 是 <stl_algo.h>
复制到另一个容器
replace_if 有条件地替换 是 <stl_algo.h>
replace_copy_if 有条件地替换,并将结果 是 <stl_algo.h>
复制到另一个容器
reverse 反转元素次序 是 <stl_algo.h>
reverse_copy 反转元素次序并将结果 是 <stl_algo.h>
复制到另一个容器
rotate 旋转 是 <stl_algo.h>
rotate_copy 旋转,并将结果复制到 是 <stl_algo.h>
另一个容器
search 查找某个子序列 否 <stl_algo.h>
search_n 查找连续发生n次的子序列 否 <stl_algo.h>
set_difference 差集 是 if in-place <stl_algo.h>
set_intersection 交集 是 if in-place <stl_algo.h>
set_symmetric_ 对称差集 是 if in-place <stl_algo.h>
difference
set_union 并集 是 if in-place <stl_algo.h>
sort 排序 是 <stl_algo.h>
stable_partition 分割并保持元素的相对次序 是 <stl_algo.h>
stable_sort 排序并保持等值元素的 是 <stl_algo.h>
相对次序
swap 交换(对调) 是 <stl_algobase.h>
swap_ranges 交换(指定区间) 是 <stl_algo.h>
transform 以两个序列为基础,交互 是 <stl_algo.h>
作用产生第三个序列
unique 将重复的元素折叠缩编, 是 <stl_algo.h>
使成唯一
unique_copy 将重复的元素折叠缩编, 是 if in-place <stl_algo.h>
使成唯一,并复制到他处
upper_bound 将指定元素插入区间之内 否 <stl_algo.h>
而不影响区间之原本排序
的最高位置
make_heap 制造一个heap 是 <stl_heap.h>
pop_heap 从heap取出一个元素 是 <stl_heap.h>
push_heap 将元素推进heap内 是 <stl_heap.h>
sort_heap 对heap排序 是 <stl_heap.h>
*/