需要找到由我实现的树数据结构占用的确切大小(以字节为单位)。节点结构如下
struct Node
{
int word;
int count;
unordered_map<int, Node*> map;
}node;
我一直在做的是 size(int)*2(for word and count) + map.bucket_count() * (sizeof(int) + sizeof(Node*)) 并为每个节点重复执行此操作。如果我忽略了 unordered_map 中存储的元素开销,这是正确的方法吗?
此外,如果我是正确的 map.bucket_count() 给出了当前分配的桶数,包括预分配的桶数。我应该使用 map.size() 而不是忽略预分配的存储桶吗?
或者不是所有这些,使用 MemTrack 之类的工具来查找使用的内存会更好吗?