如何创建特定大小的unordered_map?

时间:2016-11-21 05:30:11

标签: c++ hash

我知道我们可以做到这一点std::unordered_map<key, value> my_map; 当我尝试查看zero的大小时,当我尝试查看bucket_count时,它会给出11

我想做的事情就是这样std::unordered_map<key, value> my_map(1000);

但我收到错误expected identifier before numeric constant

我想设置哈希表的大小,这样当向量重新分配内存(从旧内存位置(小)到新内存位置(更大)的值的副本)时,我将不会遇到相同的问题向量。 Since I have large data of specific size (~100,000) that I want to hash, this motivates me to do preallocation

当我在cppreference中看到unordered_map构造函数时,它需要分配器,哈希函数等。我们真的需要提供这么多信息才能将哈希映射设置为特定大小吗?

1 个答案:

答案 0 :(得分:3)

vector一样,您可以使用reserve()http://en.cppreference.com/w/cpp/container/unordered_map/reserve