包含 unordered_map 作为成员的结构的 sizeof()
我有以下类型的结构
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,因为
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...)