sizeof () структуры, содержащей unordered_map в качестве члена - PullRequest
2 голосов
/ 14 сентября 2011

У меня есть структура следующего типа

struct Node
    {
        int  word;       
        int   count;       
        unordered_map<Type, Node*> map;       

    }node;   

Можно ли предположить, что sizeof (узел) дает вам правильный размер этого узла в C ++? Я уверен, что в структуре будет заполнение, но размер будет учитывать правильный размер unordered_map.

1 Ответ

5 голосов
/ 14 сентября 2011

да, поскольку sizeof обычно вычисляется во время компиляции.

Это означает, что даже если размер хэша равен 1000 или 100, или 10, или 1, или 0, вы получите такой же размер результата. не думайте, что он будет увеличен, даже если будет изменена хеш-таблица.

однако помните, что sizeof в c ++ может иногда давать неудобные результаты (заполнение, место для указателя на виртуальную таблицу и т. Д.)

...