对于我的下一个任务,我需要使用一个非常大的哈希值;因为我有一个旧的编译器,所以我不能使用C ++ 0x std::unordered_map
。理想情况下,我需要拨打reserve
来提前为大量物品腾出空间。我在boost::unordered_map
中找不到这种方法:是否有任何地方或功能达到同样的效果?
2个关联容器是相同的;我可以看到rehash
函数和用于控制存储桶数量的相同构造函数,但不是关于许多元素的函数。
你能帮帮我吗?
答案 0 :(得分:6)
reserve
可以由rehash
模拟,如N3376中的表103所示。
a.rehash(n)
Post: a.bucket_count() > a.size() / a.max_load_factor()
and a.bucket_count() >= n.
a.reserve(n) Same as a.rehash(ceil(n / a.max_load_factor()))