首页 > 代码库 > STL的一些泛型算法

STL的一些泛型算法

源地址:http://blog.csdn.net/byijie/article/details/8142859

从福州大学资料里摘下来的我现在能理解的泛型算法

algorithm

min(a,b) 返回a,b中的最小值

max(a,b)返回a,b中的最大值

fill(a,a+n,val) 用val填充数组

sort(a,a+n,cmp)

stable_sort(a,a+n,cmp)

list.sort(cmp) 基于链表的归并排序

make_heap(a,a+n,cmp) 默认是最大堆化,即cmp为真时a做叶子

pop_heap(a,a+n,cmp) 将堆顶元素移至a[n-1]且a[0..n-2]仍为堆

push_heap(a,a+n,cmp)将a[n-1]加入堆a[0..n-1]

sort_heap(a,a+n,cmp)将堆a[n-1]化为排序好的数组a[n-1]

lower_bound(a,a+n,val) 二分返回第一次出现val的位置(迭代器) 若没有这个值,返回这个数组里这个数的下确界

upper_bound(a,a+n,val) 返回一次出现位置的后一个位置(迭代器)

max_element(a,a+n,cmp) 返回数组最大值第一次出现位置(迭代器)

min_element(a,a+n,cmp)

lexicographical_compare(a,a+n,b,b+m,cmp) 按字典顺序比较大小

swap(a,b) 交换a,b

copy(a,a+n,b) 将a[0..n-1]拷贝到b[0..n-1] 

swap_ranges(a,a+n,b) 交换a[0...n-1]和b[0...n-1]

unique_copy(a,a+n,b) 去除a[0...n-1]中重复的多余元素,拷贝到b中