首页 > 解决方案 > 如何找到 std::unordered_map 的当前容量?

问题描述

std::unordered_map并且std::vector两者都具有reserve增加集合容量的方法,因此可以在不扩大内部缓冲区的情况下向集合中添加多个元素。但是,std::vector也有一个方法capacity()可以返回集合的当前容量。std::unordered_map没有这样的方法。有没有办法获得std::unordered_map使用该类已经提供的任何东西的能力?

标签: c++vectorunordered-map

解决方案


地图包含许多桶(请参阅bucket_count()),每个桶可以包含一定数量的元素(请参阅max_load_factor())。所以a的总容量std::unordered_map<X, Y> m;

m.max_load_factor() * m.bucket_count();

推荐阅读