我想知道如何实现stl hash_map。如何找出表大小和地图消耗的内存空间?这是用C ++编写的。
答案 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
。