heap不属于STL容器,它扮演者priority queue的助手。heap是一种完全二叉树,可由数组来实现,但heap需要动态改变大小,所以最终选择了vector作为底层容器。STL默认提供最大堆。
题外话:分析heap的源码就能清楚的理解堆这种数据结构的例程,而STL库代码的质量又很高,所以看堆的代码,STL源码是一个很好的选择。
为了满足完全二叉树的性质,新插入的元素一...
分类:
其他好文 时间:
2014-07-22 23:04:53
阅读次数:
363
如题Ubuntu自带的OpenJDK只有jre环境,不提供源码,所以我们还是需要去下载。 JDK6:http://download.java.net/openjdk/jdk6/JDK7:http://download.java.net/openjdk/jdk7/下载好了后,只需要解压下载包下的一个子目录:/jdk/src/share/classes/,解压的路径记好了,如:/home/simon/...
分类:
编程语言 时间:
2014-07-22 23:04:52
阅读次数:
445
在我们ios的开发中gdataxml是一个常用的开源实现,很多第三方的库在实现里也会加入它的源码。我们在使用此类库或者直接使用gdataxml库时,切记要在工程中引入libxml2这个框架,否则编译会报错,提示类似下面:
Undefined symbols for architecture armv7:
"_xmlDocDumpMemory", referenced from: xxx
...
分类:
移动开发 时间:
2014-07-22 23:04:33
阅读次数:
329
[源码编译]
前期准备:
确认电脑上安装好g++等开发环境,否则执行
sudo apt-get install build-essential
2. 确认电脑上已经安装好svn以便下载最新的源代码,否则执行
sudo apt-get install subversion
3. 确保proj4的安装
$ curl -O...
分类:
系统相关 时间:
2014-07-22 23:02:53
阅读次数:
2542
最近编程时,发现一个针对HashMap的一个提示:
翻译过来就是:用SparseArray来代替会有更好性能。
那我们就来看看源码中SparseArray到底做了哪些事情:
一、构造
从构造方法我们可以看出,它和一般的List一样,可以预先设置容器大小,默认的大小是10:
[java] view
plaincopy
public Sp...
分类:
其他好文 时间:
2014-05-01 21:57:37
阅读次数:
483
Redis的内存存储结构是个大的字典存储,也就是我们通常说的哈希表。Redis小到可以存储几万记录的CACHE,大到可以存储几千万甚至上亿的记录(看内存而定),这充分说明Redis作为缓冲的强大。Redis的核心数据结构就是字典(dict),dict在数据量不断增大的过程中,会遇到HASH(key)碰撞的问题,如果DICT不够大,碰撞的概率增大,这样单个hash 桶存储的元素会越来愈多,查询效率就...
分类:
其他好文 时间:
2014-05-01 21:56:59
阅读次数:
398
直接上源码 1 using System; 2 using System.Data; 3 using
System.Threading.Tasks; 4 using DbUtility; 5 6 namespace TestDbUtilityConsole 7
{ 8 class Prog...
分类:
数据库 时间:
2014-05-01 21:15:43
阅读次数:
560
一、整体流程1、获取ST库--STM32F10x_StdPeriph_Lib_V3.5.02、新建文件夹并加载文件3、新建工程4、给工程添加组5、设置"Target
Option"6、设置Debug选项二、获取ST库 这里用野火光盘提供的"ST库3.5.0源码"--STM32F10x_StdPer....
分类:
其他好文 时间:
2014-05-01 20:12:19
阅读次数:
485
[前序]
首先关于GDAL源码方面,GDAL开源项目源码是使用C++语言所写,通过源码的编译可以生成支持一系列语言如c++/java/php/csharp/perl/python/ruby开发所依赖的第三方包或头文件。GDAL的同时支持不同平台下的编译生成,在Win平台下使用起来出现的问题较多,比如编译时选择不同的编译选项32位或x64位产生出不同的依赖库,还有中文路径、中文读写问题...
分类:
编程语言 时间:
2014-05-01 17:53:24
阅读次数:
1741
好了,到这里,总结一下:
1)创建一个Request的时候,会同时设置一个Response.Listener作为请求的一个参数变量,之后调用RequestQueue的add方法将其添加到Queue。
2)在Queue中的请求会由NetworkDispatcher去跟网络进行通信(如果有缓存的时候,就是CacheDispatcher)。
3)当请求结果回来的时候,Request会首先调用parseNetworkResponse方法根据不同的请求类型,如Json,Image等进行不同的处理。
4)当Reques...
分类:
移动开发 时间:
2014-05-01 17:35:08
阅读次数:
493