繁体   English   中英

一个空队列占用多少字节?

[英]How many bytes does an empty queue take?

空队列,空向量等需要占用多少字节?

这是一个实现细节-标准对此没有太多说明。 我们可能可以找出一个最小值:

vector将(至少)具有指向数据本身的指针,实际大小和容量。 因此至少是整数大小的3倍。 显然,大小和指针可能是64位,在这种情况下,它是3倍64位= 24字节。 但是,如果不查看实际的实现,就不会说大小是否为64位。

queue可能相似。

您当然可以执行sizeof(vector<int>)并亲自查看。 但是,不能保证在不同的体系结构上都相同。

这个问题没有普遍的答案。 这完全取决于实现。

一般而言,常见的实现将基于数组或链表。 在这种情况下,它将需要一个指向队列开头和长度的指针(或指向结尾的指针)。 这反过来意味着它将占用sizeof(void *)* 2个字节。 在x86_64上,它等于16个字节。 链表也有两个指针。 但是不同的实现可能或多或少地花费。 例如,一个人可以使用24位基址和8位来存储大小,从而仅使用4个字节进行簿记。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM