2

我有以下类型的结构

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

    }node;   

假设 sizeof(node) 在 C++ 中为您提供了该节点的正确大小是否安全?我确信结构中会有填充,但 sizeof 仍然会考虑 unordered_map 的正确大小。

4

1 回答 1

5

是的,因为sizeof通常在编译时计算。

这意味着即使散列大小是 1000 或 100 或 10 或 1 或 0,您也会得到相同的 sizeof 结果。不要假设它会被放大,即使哈希表会被修改。

但是请记住,c++ 中的 sizeof 有时会产生尴尬的结果(填充、虚拟表指针的位置等......)

于 2011-09-14T17:23:24.873 回答