【发布时间】:2011-06-13 21:01:49
【问题描述】:
我有一些关于 unordered_map 的自定义分配器的问题。我有一个大型数据集,我需要将字符串作为键进行散列。所以我开始知道提供自定义内存分配器可以优化速度。但是我该怎么做呢? (我检查了 SO,但我找不到任何关于使用自定义分配器的信息,尽管有一些与自定义哈希函数等相关的东西)
还有什么 unordered_map::size() 返回?它说它是最长的受控序列。我对这意味着什么感到困惑。是桶数本身还是其他?
非常感谢
【问题讨论】:
-
如果您关心性能或内存占用,Boost/stdlib
unordered_map可能不是最佳选择。尝试使用Google Sparsehash 或MCT 进行封闭哈希(后者的文档还包含有关根据需要选择最佳哈希表实现的建议)。size()只返回元素的数量,就像在任何其他容器中一样。
标签: c++ hash tr1 unordered-map allocator