簡體   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