簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM