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
[前序]
首先关于GDAL源码方面,GDAL开源项目源码是使用C++语言所写,通过源码的编译可以生成支持一系列语言如c++/java/php/csharp/perl/python/ruby开发所依赖的第三方包或头文件。GDAL的同时支持不同平台下的编译生成,在Win平台下使用起来出现的问题较多,比如编译时选择不同的编译选项32位或x64位产生出不同的依赖库,还有中文路径、中文读写问题...
分类:
编程语言 时间:
2014-05-01 17:53:24
阅读次数:
1741
??
Berkeley DB(BDB)是一个高效的嵌入式数据库编程库,C语言、C++、Java、Perl、Python、Tcl以及其他很多语言都有其对应的API。Berkeley DB可以保存任意类型的键/值对(Key/Value Pair),而且可以为一个键保存多个数据。Berkeley DB支持让数千的并发线程同时操作数据库,支持最大256TB的数据,广泛用于各种操作系统,其中包括大多数类U...
分类:
数据库 时间:
2014-04-30 22:18:39
阅读次数:
372
问题描述:
在sublime text里写最简单的python语句hello world:
print ('hello world')
回车build后出错如下图:
解决办法:
这个问题的原因说起来很幼稚,就是因为没有保存文件。所...
分类:
其他好文 时间:
2014-04-30 22:16:38
阅读次数:
344