一个空队列、一个空向量等占用多少字节?
问问题
604 次
3 回答
7
这是一个实现细节——标准并没有说太多。我们大概可以算出一个最小值:
Avector
将(至少)具有指向数据本身的指针、实际大小和容量。所以至少是整数大小的 3 倍。显然,大小和指针可能是 64 位,在这种情况下,它是 3 乘以 64 位 = 24 字节。但是,如果不查看实际实现,就无法说大小是否为 64 位。
Aqueue
可能是相似的。
你当然可以sizeof(vector<int>)
自己做,看看。但不能保证在不同的架构上是相同的。
于 2013-02-20T23:42:52.250 回答
0
这个问题没有一般的答案。这完全取决于实现。
于 2013-02-20T23:42:12.083 回答
0
一般来说,常见的实现将基于数组或链表。在这种情况下,它需要一个指向队列开头的指针和长度(或指向结尾的指针)。这反过来意味着它将占用 sizeof(void*)*2 个字节。在 x86_64 上它将等于 16 个字节。链表也有两个指针。但是不同的实现可能需要更多或更少。例如,可以使用 24 位基地址和 8 位来存储大小,导致只使用 4 个字节来记账。
于 2013-02-20T23:48:11.633 回答