heap不属于STL容器,它扮演者priority queue的助手。heap是一种完全二叉树,可由数组来实现,但heap需要动态改变大小,所以最终选择了vector作为底层容器。STL默认提供最大堆。
题外话:分析heap的源码就能清楚的理解堆这种数据结构的例程,而STL库代码的质量又很高,所以看堆的代码,STL源码是一个很好的选择。
为了满足完全二叉树的性质,新插入的元素一...
分类:
其他好文 时间:
2014-07-22 23:04:53
阅读次数:
363
A heap is a partially sorted binary tree.
Although a heap is not completely in order, it conforms to a sorting principle:
every node has a value less ...
分类:
其他好文 时间:
2014-05-09 17:34:18
阅读次数:
339
Dijkstra inAdjacency matrix :int Dijkstra(int
src,int tec, int n){ bool done[1005]; int d[1005]; memset(done,0,sizeof(done));
map[0][src] ...
分类:
其他好文 时间:
2014-05-08 09:35:51
阅读次数:
398
最近刚刚接触broadleaf commerce, 一个电商网站的开源模版。具体的运行和配置可以参考链接:点击打开链接
而该模版是在jetty容器下运行的,数据库是HSQL。官方网站上给出了如何将数据库迁移到mysql以及把项目工程部署在tomcat中所需要的配置,但是过程不甚详细,网上这方面的资源也不是很多,所以楼主就打算写这篇博客作为一个总结。
1.数据库的迁移(HSQL到MYSQL)...
分类:
数据库 时间:
2014-05-08 04:06:52
阅读次数:
615
做项目的时候,MyEclipse提示内存不足。错误提示大概如下:MyEclipse has
detected that less than 5% of the 64MB of PermGen (Non-heap memory) space
remains. It is strongly recomm...
分类:
系统相关 时间:
2014-05-07 00:49:37
阅读次数:
558
Windows 堆溢出MS 没有完全公开 Windows 的堆管理细节,目前对 Windows
堆的了解主要基于技术狂热者、黑客、安全专家、逆向工程师等的个人研究成果。目前 Windows NT4/2000 SP4
上的堆管理策略基本(与攻击相关的数据结构和算法)研究清楚。堆溢出的重要研究者:Hal...
分类:
其他好文 时间:
2014-05-05 23:41:54
阅读次数:
646
堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数...
分类:
编程语言 时间:
2014-05-05 23:23:31
阅读次数:
499
堆块分配时的任意地址写入攻击原理堆管理系统的三类操作:分配、释放、合并,归根到底都是对堆块链表的修改。如果能伪造链表结点的指针,那么在链表装卸的过程中就有可能获得读写内存的机会。堆溢出利用的精髓就是用精心构造的数据去溢出下一个堆块的块首,改写块首中的前向指针
Flink 和后向指针 Blink,然后...
分类:
其他好文 时间:
2014-05-05 09:47:29
阅读次数:
491
缘起
线上有Tomcat升级到7.0.52版,然后有应用的JVM FullGC变频繁,在高峰期socket连接数,Cpu使用率都暴增。
思路
思路是Tomcat本身的代码应该是没有问题的,有问题的可能是应用代码升级,或者环境改变了,总之Tomcat的优先级排在最后。
先把应用的heap dump下来分析下:
jmap -dump:format=b,file=path pid
用IB...
分类:
其他好文 时间:
2014-05-03 21:42:36
阅读次数:
382
该文章从优先队列的角度分析并实现了斐波那契堆,并与二叉堆实现的优先队列进行了比较。...
分类:
其他好文 时间:
2014-04-30 22:47:38
阅读次数:
256