我必须为大文本(搜索,粘贴,删除)创建操作速度为O(1)的哈希表。 这是真的吗?如何最小化碰撞?任何例子?我以后从未使用过C ++。我找不到任何带有字典的示例哈希表 目标语言C ++(仅限STL)。
答案 0 :(得分:2)
您可以使用属于unordered_map
标准的unordered_set
或C++11
,或者如果C++11
不可选,则使用这些容器的boost版本。如果您需要自己实施解决方案,我相信您可以使用任一实现作为参考。
O(|S|)
,其中S
是要搜索的字符串。此外,复杂性是预期 O(|S|)
,因为无论哈希函数可能发生多么好的冲突(除非极少数情况下可以使用完美哈希,将强烈的>由于生日悖论而非常非常高的概率。)