5
在標題中給出:給定一個STL容器類型的對象(例如std::vector<int>
或std::set<MyClass>
),我想知道它們的內存消耗---也就是---消耗多少內存來存儲元素,輔助每個元素的數據和容器大小。我假設存儲的對象不分配任何額外的內存。如何測量STL容器的總內存消耗量?
對於std::vector<int> v
我可以添加:
sizeof(std::vector<int>) + v.capacity()*sizeof(int)
因爲載體不存儲每個元素的任何輔助數據。但我怎麼能爲其他容器呢?
我可以忍受非恆定的時間複雜性。
可能最好提供您自己的日誌分配器。這對現有的代碼不起作用,但它可以讓你準確地跟蹤容器何時以及如何分配內存。 –