包含unordered_map作为成员的结构的sizeof()

时间:2011-09-14 17:17:16

标签: c++ structure sizeof unordered-map

我有以下类型的结构

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

    }node;   

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

1 个答案:

答案 0 :(得分:5)

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

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

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