码迷,mamicode.com
首页 >  
搜索关键字:stl源码    ( 345个结果
STL源码剖析 容器 stl_map.h
map -------------------------------------------------------------------------------- 所有元素都会根据元素的键值自动被排序。 map的所有元素都是 pair,同时拥有实值和键值。 不可以修改元素的键值,因为它关系到 map 元素的排列规则 可以修改元素的实值,因为它不影响 map 的排列规则 map iterator 既不是一种 constant iterators , 也不是一种 mutable iterator 标准 ...
分类:其他好文   时间:2014-07-22 22:34:34    阅读次数:312
STL 源码剖析 算法 stl_heap.h
heap ------------------------------------------------------------------------- binary heap 是一种完全二叉树。 隐式表示法:以 array 表述 tree。 小技巧:将 array 的 #0 元素保留,则第 i 个元素的左右子节点分别是 2i 和 2i + 1, 父节点是i/2 --> STL 里没有采用这种小技巧 将 array 无法动态改变大小,所以用 vector 替代 array 这个文件里提供了各种堆操作的...
分类:其他好文   时间:2014-07-22 00:32:34    阅读次数:256
STL源码剖析 容器 stl_deque.h
deque ------------------------------------------------------------------------ ??一直看不懂 operator->() ,不明白它为什么不用接受参数,直接 return &(operator*()) 好像我们用迭代器的时候也不没怎么用到这个函数,甚至我都不会用 1.概述 vector 是单向开口的连续线性空间,deque 则是一种双向开口的连续线性空间 允许常数时间内对起头端进行元素的插入和移除操作 没有容量概念,因为它是动...
分类:其他好文   时间:2014-07-22 00:32:34    阅读次数:225
STL源码剖析 容器 stl_queue.h
queue ---------------------------------------------------------------------- stack 是一种配接器(adapter),以某种容器作为底部结构,改变其接口,使之符合"先进先出"的特性。 SGI STL 默认以 deque 为 stack 底部结构 没有遍历行为,没有遍历器 示例: #include #include #include #include ...
分类:其他好文   时间:2014-07-22 00:30:38    阅读次数:230
STL源码剖析 容器 stl_stack.h
stack ------------------------------------------------------------- stack 是一种配接器(adapter),以某种容器作为底部结构,改变其接口,使之符合"先进后出"的特性。 SGI STL 默认以 deque 为 stack 底部结构 没有遍历行为,没有遍历器 示例: #include #include #include #include using names...
分类:其他好文   时间:2014-07-22 00:28:39    阅读次数:212
STL源码剖析 容器 stl_list.h
list ---------------------------------------------------------------------- ??为什么很多在算法库里有的算法还要在类的成员函数里重新实现一遍? -->1.因为算法库里的是通用的,对于具体的类来说效率不高。 比如说 reverse 如果直接用 stl_algo.h 里的 reverse,会再调用 iter_swap, 而 iter_swap 的实现方法是借用临时变量来交换两个迭代器指向的元素,这样会调用 好几次构造函数、拷贝方法、析构...
分类:其他好文   时间:2014-07-22 00:27:35    阅读次数:357
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 -- 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
345条   上一页 1 ... 29 30 31 32 33 ... 35 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!