我知道我们可以做到这一点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构造函数时,它需要分配器,哈希函数等。我们真的需要提供这么多信息才能将哈希映射设置为特定大小吗?
答案 0 :(得分:3)
与vector
一样,您可以使用reserve()
:http://en.cppreference.com/w/cpp/container/unordered_map/reserve