我有以下类型的结构
struct Node
{
int word;
int count;
unordered_map<Type, Node*> map;
}node;
假设sizeof(node)在C ++中为您提供了该节点的正确大小,这是否安全? 我确信结构中会有填充,但sizeof仍会考虑unordered_map的正确大小。
答案 0 :(得分:5)
是的,因为sizeof
通常是在编译时计算的。
这意味着即使散列大小为1000或100或10或1或0,您也会获得相同的sizeof结果。 即使哈希表被修改,也不要认为它会被放大。
然而请记住,c ++中的sizeof有时会产生尴尬的结果(填充,虚拟表指针的位置等等)