【问题标题】:sizeof() of a structure containing an unordered_map as a member包含 unordered_map 作为成员的结构的 sizeof()
【发布时间】:2011-09-15 01:25:37
【问题描述】:

我有以下类型的结构

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

    }node;   

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

【问题讨论】:

  • 安全是什么意思?如果您担心尺寸会在一段时间后发生变化,请不要担心。
  • 很抱歉我编辑它的混乱。谢谢

标签: c++ structure sizeof unordered-map


【解决方案1】:

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

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

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

【讨论】:

  • offtopic:对于一些调用 sizeof 用法,请参阅特殊的 c++ 书籍模板部分。 sizeof 的强大功能比您乍一看可能想象的要强大
  • sizeof总是在编译时计算。
猜你喜欢
  • 2021-03-02
  • 2021-01-16
  • 1970-01-01
  • 2022-04-26
  • 1970-01-01
  • 2016-09-18
  • 1970-01-01
  • 1970-01-01
  • 2011-11-22
相关资源
最近更新 更多