我想知道stl hash_map是如何实现的。如何找出表的大小和map所消耗的内存空间?这是在C++中。
发布于 2009-12-29 06:08:19
没有"stl hash_map“这样的东西。TR1中有一个unordered_map,但我假设您没有使用它,否则您可能会说unordered_map。
正如有人指出的那样,unordered_map使用"bucket_count“来确定存储桶的数量。您可以遍历每个存储桶,获得它的大小("bucket_size(size_t bucket_num)"),将其乘以一对键和值的大小,然后将它们相加,得到所用内存的粗略估计。可能有实现定义的不可移植的方法。它显然是为您正在使用的任何hash_map类定义的实现。
发布于 2009-12-29 05:44:14
C++ STL Hash Containers and Performance上的这篇博客文章是对STL hash map的一个很好的解释。看看对你有没有帮助。
发布于 2009-12-29 05:52:22
试试bucket_count。
https://stackoverflow.com/questions/1971707
复制相似问题