首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

查寻字符串指针,用什么数据结构好

2012-09-03 
查找字符串指针,用什么数据结构好?我的程序跑在嵌入式单板上,其中会使用大量的字符串(十万左右),字符串内

查找字符串指针,用什么数据结构好?
我的程序跑在嵌入式单板上,其中会使用大量的字符串(十万左右),字符串内容有的是重复的,有的不一样。为了节省内存空间,我想使用一种数据结构,把所有不重复的字符串保存起来,字符串都是new出来的char*类型。

在使用字符串时,先从数据结构中查找一下,如果已有保存好的字符串,则直接取出指针来使用;如果不存在,则new一个新的来使用,并把这个指针存到数据结构中。

请大家帮忙推荐一下,有什么好的数据结构,可以在查找效率以及节省内存空间上做到最好?


[解决办法]
去重 set
[解决办法]
你的想法觉得不太好,如果重复的仅保存字符串的指针,用起来很危险。

我认为想节省内存,查找快,二者兼得比较难。 

查找快,用字符串哈希。下面是个字符串哈希取值的函数,用起来不错。

C/C++ code
unsigned int DJBHash(char *str)  {      unsigned int hash = 5381;         while (*str)      {          hash += (hash << 5) + (*str++);      }         return (hash & 0x7FFFFFFF);  }
[解决办法]
节省内存 bitmap
[解决办法]
探讨

节省内存 bitmap

[解决办法]
从你的描述中看到你在尝试着用指针数组。如果你还需要保存其他数据,那么你可以创建一个结构体,然后申请结构体指针数组。

热点排行