大N的字符串容器

Leo*_*sky 0 c c++ algorithm data-mining data-structures

我正在寻找适合大量字符串(> 10 ^ 9)的字符串容器.字符串具有可变长度.它必须快速插入和查找,并使用节俭的内存.当容器被填满时,字符串是无序的.平均字符串长度约为10个字节.查找精确的字符串值.可擦除性 - 可选.N事先不知道.适用于64位架构.用例 - 考虑AWK的关联数组.

map<string>每个字符串大约有20-40个开销,每个插入调用一个malloc(或两个).所以它并不快,也不节俭.

有人能指出我的C/C++库,数据结构还是纸张?

相对论 - 哈希表库的比较

编辑 我删除了"大数据",将N提升到更高的值,澄清了要求.

ami*_*mit 6

没有银弹,但基数树提供了trie(快速查找和插入,至少渐近)的优点- 具有更好的空间消耗.

但是 - 两者都被认为不是"高效缓存" - 这可能很重要,尤其是在某些时候需要对数据进行迭代时.