c++ - 如何找到 std::unordered_map 的当前容量?
问题描述
std::unordered_map
并且std::vector
两者都具有reserve
增加集合容量的方法,因此可以在不扩大内部缓冲区的情况下向集合中添加多个元素。但是,std::vector
也有一个方法capacity()
可以返回集合的当前容量。std::unordered_map
没有这样的方法。有没有办法获得std::unordered_map
使用该类已经提供的任何东西的能力?
解决方案
地图包含许多桶(请参阅bucket_count()
),每个桶可以包含一定数量的元素(请参阅max_load_factor()
)。所以a的总容量std::unordered_map<X, Y> m;
为
m.max_load_factor() * m.bucket_count();
推荐阅读
- c# - 为什么 WriteableBitmap 不能直接写入图像字节?
- html - 任何简单的 HTML5 / CSS3 方法来隐藏选定的选项文本?
- jquery - jQuery仅在第一次单击复选框两次后运行
- sql-server - 带有 MSDTC 链接服务器更新的存储过程挂起 PREEMPTIVE_COM_QUERYINTERFACE 等待(事件 ID 为 4359)
- wpf - 无法使用 wpf 执行 powershell GUI
- c# - 如何解决调用方法c#的库错误?
- javascript - 用一个正则表达式测试多个单词
- javascript - 如何修复浏览器移动视图中未定义问题的 jQuery“长度”?
- mysql - Docker文件,mysql,权限问题
- html - 不使用 css 的右侧带有文本的图像