如何查找STL hash_map的表大小和内存消耗?

时间:2009-12-28 21:40:27

标签: c++ hash

我想知道如何实现stl hash_map。如何找出表大小和地图消耗的内存空间?这是用C ++编写的。

3 个答案:

答案 0 :(得分:2)

没有“stl hash_map”这样的东西。在TR1中有一个unordered_map,但我假设你没有使用它,或者你会说unordered_map。

有人指出,unordered_map有“bucket_count”来确定存储桶的数量。您可以遍历每个存储桶,获取它的大小(“bucket_size(size_t bucket_num)”),将其乘以一对键和值的大小,并将它们全部加起来为您提供粗略估计使用的内存。可能存在实现定义的非可移植方式。很明显,这是为你正在使用的hash_map类定义的实现。

答案 1 :(得分:1)

C++ STL Hash Containers and Performance上的这篇博文是对STL哈希映射的一个很好看的解释。看看它是否对你有帮助。

答案 2 :(得分:0)

尝试bucket_count