私が実装したツリーデータ構造が占める正確なサイズをバイト単位で見つける必要があります。ノード構造は次のとおりです
struct Node
{
int word;
int count;
unordered_map<int, Node*> map;
}node;
私が行っているのは、 size(int)*2(word と count の場合) + map.bucket_count() * (sizeof(int) + sizeof(Node*)) で、ノードごとにこれを繰り返します。unordered_map のストレージの要素オーバーヘッドを無視している場合、これは正しい方法ですか?
また、私が正しければ、 map.bucket_count() は、事前に割り当てられたものを含め、現在割り当てられているバケットの数を示します。事前に割り当てられたバケットを無視する代わりに map.size() を使用する必要がありますか?
それとも、これらすべての代わりに、MemTrack などのツールを使用して使用メモリを見つけるほうがよいのでしょうか?