[英]How to find table size and memory consumption of STL hash_map?
我想知道stl hash_map是如何實現的。 我如何找出表的大小和映射占用的內存空間? 這是在C ++中。
沒有“ stl hash_map”這樣的東西。 TR1中有一個unordered_map,但我認為您沒有使用它,否則您會說unordered_map。
正如有人指出的那樣,unordered_map具有“ bucket_count”來確定存儲桶的數量。 您可以遍歷每個存儲桶,獲取其大小(“ bucket_size(size_t bucket_num)”),然后將其乘以一對鍵和值的大小,然后將它們全部相加,以大致估算出所使用的內存。 可能有實現定義的非便攜式方式。 顯然,它將為您使用的任何hash_map類定義實現。
有關C ++ STL哈希容器和性能的博客條目很好地解釋了STL哈希圖。 看看是否對您有幫助。
嘗試bucket_count
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.