1. map : C++的STL中map是使用树来做查找算法; 时间复杂度:O(log2N)2.hash_map : 使用hash表来排列配对,hash表是使用关键字来计算表位置; 时间复杂度:O(1), 最坏的时间复杂度:O(n)总体来说:hash_map 比 map 查找速度快,而且查找速度.....
分类:
其他好文 时间:
2014-06-28 23:22:16
阅读次数:
293
在STL中,排序是个很重要的话题。1.algorithm 里的sort()只接收RandomAccessIterator用于像vector,dequeue的排序2.像set,map,这种关联式容器,本身就由RBTree维护了有序,只要遍历一遍就行了。3.而list比较特殊一点,由于只有Bidirec...
分类:
其他好文 时间:
2014-06-28 22:09:39
阅读次数:
209
#include#includeusingnamespacestd;intmain(){vectorv(3);v[0]=2;v[1]=7;v[2]=9;v.insert(v.begin(),8);//在最前面插入新元素。v.insert(v.begin()+2,1);//在迭代器中第二个元素前插入新...
分类:
其他好文 时间:
2014-06-28 20:28:27
阅读次数:
144
①使用binary_search前要先保证有序②binary_search函数仅返回true或false③
分类:
其他好文 时间:
2014-06-21 12:49:50
阅读次数:
202
STL中的每个算法都非常精妙, ForwardIterlower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。 ForwardIter uppe.....
分类:
其他好文 时间:
2014-06-21 09:29:50
阅读次数:
168
ostream_iterator属于I/O流STL适配器,用于获取一个元素,同时保存在缓冲器中,可以供Cout输出。如果把cout看做成一个对 象,那么在Cout对象当中存在一片用于数据存储的区域。ostream_iterator在STL中一般配合copy函数一起使用,如下代码;ostream_it...
分类:
其他好文 时间:
2014-06-21 07:25:30
阅读次数:
168
接着上一Pa说。就是如何建立这个堆呢。可以从空的堆开始,然后依次往堆中插入每一个元素,直到所有数都被插入(转移到堆中为止)。因为插入第i个元素的所用的时间是O(log i),所以插入所有元素的整体时间复杂度是O(NlogN),代码如下。n=0;for(i=1;i=1;i--) siftd...
分类:
其他好文 时间:
2014-06-20 20:41:11
阅读次数:
205
堆是什么?是一种特殊的完全二叉树,就像下面这棵树一样。 有没有发现这棵二叉树有一个特点,就是所有父结点都比子结点要小(注意:圆圈里面的数是值,圆圈上面的数是这个结点的编号,此规定仅适用于本节)。 符合这样特点的完全二叉树我们称为最小堆。反之,如果所有父结点都比子结点要大,这样的完全二叉树称为...
分类:
其他好文 时间:
2014-06-20 19:57:49
阅读次数:
215
宽度优先搜索的基本思想就是先将源点添加到一个队列中, 每次从队列中取出一个顶点,将该顶点的邻居顶点中没有拜访过的顶点都添加到队列中,最后直到队列消耗完毕为止。
应用
宽度优先搜索可以解决最短路径问题。而最短路径算法在互联网中应用非常广泛,尤其是路由这块。因为路由追求的是高效,所以每个路由路径都是通过最短路径计算出来的。如果没有最短路径算法,我们可能就享受不到这么快的...
分类:
其他好文 时间:
2014-06-18 07:36:25
阅读次数:
230
背景
看了几个内存池的设计,如python,STL,基本上对内存的管理有两种结构:
1.block,即内存的一个块,一般和内存页(pagesize)大小相关。
2.内存分片,即在该内存块上分配要使用的内存空间。
例如python的pyIntObject中使用到的缓冲池的实现: http://blog.csdn.net/ordeder/article/details/25343633...
分类:
数据库 时间:
2014-06-18 00:49:46
阅读次数:
416