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

Phe*_*das 2 c++ unordered-map structure sizeof

我有一个以下类型的结构

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

    }node;   
Run Code Online (Sandbox Code Playgroud)

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

Guy*_*y L 5

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

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

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