Нужно найти точный размер в байтах, занятый древовидной структурой данных, которую я реализовал. Структура узла выглядит следующим образом
struct Node
{
int word;
int count;
unordered_map<int, Node*> map;
}node;
То, что я делал, это
size (int) * 2 (для слова и числа) + map.bucket_count () * (sizeof (int) + sizeof (Node *)) и многократно делают это для каждого узла.
Это правильный способ сделать это, если я пренебрегаю надбавки над хранилищем элемента в unordered_map?
Кроме того, если я прав, map.bucket_count () дает количество сегментов, которые выделены в данный момент, включая предварительно выделенные. Должен ли я использовать map.size () вместо этого, который будет игнорировать предварительно выделенные сегменты?
Или вместо всего этого лучше использовать такие инструменты, как MemTrack, чтобы найти используемую память?