摘要:
STL源码剖析学习八:heap & priority queueheap不是STL容器组件,但是作为priority queue的助手存在。完全二叉树:整棵树除了最底层的叶节点之外,都是填满的,而最底层的叶节点从左至右不能有空隙。好处是整棵树内没有任何节点漏洞,就可以用array表述整棵树(隐式表述法):将#0处保留,某个节点位于i处时,其左子节点必位于2i处,右子节点位于2i+1处,父节点位于2/i处。为了满足动态改变容量的要求,用vector代替array。push_heap:先将新加入节点插在最底层最右边的位置,vector的end处然后执行一个上溯的程序:把新节点与其父节点相比 阅读全文
posted @ 2012-04-22 12:57
w0w0
阅读(244)
评论(0)
推荐(0)
摘要:
STL源码剖析学习七:stack和queuestack是一种先进后出的数据结构,只有一个出口。允许新增、删除、获取最顶端的元素,没有任何办法可以存取其他元素,不允许有遍历行为。缺省情况下用deque作为stack的底部结构,将其接口改变,封住一端就可以形成stack接口:empty()size()top()push()pop()operator==operator<由于stack以底部容器完成所有工作,成为adapter(配接器),不算做容器,叫做容器配接器stack不需要遍历,因此没有迭代器把list作为stack的底层容器stack<int,list<int>> 阅读全文
posted @ 2012-04-22 10:36
w0w0
阅读(211)
评论(0)
推荐(0)
浙公网安备 33010602011771号