码迷,mamicode.com
首页 >  
搜索关键字:effective stl    ( 8046个结果
STL的一些泛型算法
源地址:http://blog.csdn.net/byijie/article/details/8142859从福州大学资料里摘下来的我现在能理解的泛型算法algorithmmin(a,b) 返回a,b中的最小值max(a,b)返回a,b中的最大值fill(a,a+n,val) 用val填充数组so...
分类:其他好文   时间:2014-07-22 00:35:34    阅读次数:213
sort()
做ACM题的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错。STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。使用这个函数,需要包含头文件。 这个函数可以传两个参数或三个参数。第一个参...
分类:其他好文   时间:2014-07-21 08:17:49    阅读次数:226
STL 源码剖析 算法 stl_algo.h -- partial_sort / partial_sort_copy
partial_sort / partial_sort_copy ----------------------------------------------------------------------------------------------------------------------------------------- 描述:本算法接受一个 middle 迭代器(位于序列[first, last) 之列),然后重新安排[first, last), 使序列中的 middle - firs...
分类:其他好文   时间:2014-07-20 23:37:44    阅读次数:293
STL 源码剖析 算法 stl_algo.h -- inplace_merge
inplace_merge(应用于有序区间) -------------------------------------------------------------------- 描述:如果两个连接在一起的序列[first, middle)和 [middle, last]都已排序, 那么 inplace_merge 可将它们结合成单一一个序列,并仍有序。 源码: template inline void inplace_merge(Bidi...
分类:其他好文   时间:2014-07-20 23:27:42    阅读次数:368
STL源码剖析 容器 stl_vector.h
vector ---------------------------------------------------------------------- 描述: 1.迭代器 vector 维护的是一个连续线性空间,它的迭代器是普通指针, 能满足 RandomAccessIterator 所有必要条件:operator*, operator->,operator++,operator--,operator+, operator-,operator+=,operator-=,operator[] 2.数据...
分类:其他好文   时间:2014-07-20 23:25:57    阅读次数:378
STL 源码剖析 算法 stl_algo.h -- nth_element
nth_element ------------------------------------------------------------------------------ 描述:重新排序,使得[nth,last)内没有任何一个元素小于[first,nth)内的元素, 但对于[first,nth)和[nth,last)两个子区间内的元素次序则无任何保证。 思路: 1.以 median-of-3-partition 将整个序列分割为更小的左、右子序列 2.如果 nth 迭代器落于左序列,就再对左子...
分类:其他好文   时间:2014-07-20 23:20:34    阅读次数:279
STL 源码剖析 算法 stl_algo.h -- random_shuffle
random_shuffle -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 描述:将[first,last)的元素次序随机重排。 思路: 必须是 RandomAccessIterator 1.遍历区间 2.产生[...
分类:其他好文   时间:2014-07-20 23:12:29    阅读次数:231
STL 源码剖析 算法 stl_algo.h -- pre_permutation
pre_permutation ---------------------------------------------------------------- 描述: 取得 [first, last) 所标示之序列的前一个排列组合。如果没有,返回 false,有,返回true 思路: 从后往前 1.找两个相邻元素,令左端的元素为*i,右端的元素为*ii,且满足 *i > *ii 2.找出第一个小于 *i 的元素,令其为 *j,将*i,*j元素对调 3.将ii右端的所有元素颠倒 template <cl...
分类:其他好文   时间:2014-07-20 23:07:55    阅读次数:286
STL 源码剖析 算法 stl_algo.h -- equal_range
equal_range(应用于有序区间) -------------------------------------------------------------------------------------------------------------------------------------- 描述:利用二分查找找到一个区间,区间里的所有值都等于给定值,返回的是一个pair, 分别存储区间的上界迭代器和下界迭代器 源码: template <class ForwardIterator, c...
分类:其他好文   时间:2014-07-20 23:06:36    阅读次数:263
STL 源码剖析 算法 stl_algo.h -- merge sort
merge sort ---------------------------------------------------------------------- 描述:归并排序 思路: 1.将区间对半分割 2.对左、右段分别排序 3.利用inplace_merge将左、右段合并成为一个完整的有序序列 复杂度:O(log n) 源码: template void mergesort(BidirectionalIter first, Bidirecti...
分类:其他好文   时间:2014-07-20 23:05:52    阅读次数:245
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!