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

发布于 2024-12-04 11:37:43 字数 280 浏览 1 评论 0原文

我有以下类型的结构

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

    }node;   

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

I have a structure of the following type

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

    }node;   

Is it safe to assume that sizeof(node) gives you the correct size of that node in C++?
I am sure there will be padding in the structure but still will the sizeof take into consideration the correct size of the unordered_map.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一身仙ぐ女味 2024-12-11 11:37:43

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

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

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

yes, since sizeof is usually calculated at compile time.

That means that even if the hash size is 1000 or 100 or 10 or 1 or 0 you will get the same sizeof result.
don't assume it will be enlarged even if the hash table will be modified.

however remember that sizeof in c++ can have awkward results sometimes (padding, place for the virutal table pointer, etc...)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文