前面两个版本的mini自带都是用Trie树实现的,对于load一个200k左右的字典文件到内存中,通过任务管理器查看占用内存,发现v1.0和v1.2占用的内存大小分别在4.5m、3.8m左右,而本版本也是把所有字典文件load到内存中,这个版本所占内存大约1.2m。Trie树占用内存大的原因是申请的节点太多,对于存储一个英文单词,比如abcd,就要申请5个节点,尽管v1.0把节点的类型分为分支和叶节点,v1.2钟又对分支节点进行了细分,但是节点数目没有减少,又由于字典文件很简单,记录的内容比节点的内容还要小,所以占用的内存空间多了很多。
本版本没有使用索引,将来的版本中将会使用索引技术,这样就不用把所有的字典装载到内存中,而是只装载必要的索引信息,会大大节省内存空间,理论上要远远小于字典文件,才是比较理想的实现。
下面贴下代码。
//MyMain.cpp
//MyHashTable.h
//Dictrionary.h
//AllHeads.h
//Dictionary.cpp