c++ - 如何创建特定大小的 unordered_map?

标签 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

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

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

最佳答案

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

关于c++ - 如何创建特定大小的 unordered_map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40713336/

相关文章:

c++ - 将项目与静态构建 curl 链接

javascript - 在不引起重定向的情况下向 URL 添加片段?

java - HashMap#hash(int)方法的解释

C++——多重继承

c++ - 如何从一个类中的命名空间初始化所有变量

database - 加盐密码哈希有什么好处?

c++ - 哈希的 unordered_map

ruby - 使用两个数组Ruby构造hash

c++ - 涉及STL排序算法的令人困惑的SegFault

c++ - 出现 'bad_weak_ptr' 错误