2011-09-14 47 views
2

我有以下類型的sizeof()含有unordered_map作爲成員

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

    }node; 

的結構它是安全的假定的sizeof(節點)給出在C該節點的正確大小++ ? 我相信結構中會有填充,但sizeof仍會考慮unordered_map的正確大小。

+0

你說的安全是什麼意思?如果您擔心在一段時間後尺寸可能會發生變化,請不要擔心。 – Andrey

+0

對於編輯它的困惑感到抱歉。謝謝 – Phelodas

回答

5

是的,因爲sizeof通常在編譯時計算。

這意味着即使散列大小爲1000或100或10或1或0,您也會得到相同的sizeof結果。 不認爲即使哈希表將被修改,它也會被放大。然而

記得的sizeof在C++中可有尷尬的結果有時(填充,放置當前虛擬表指針,等...)

+1

offtopic:對於某些調用sizeof的用法請參閱特殊的C++書籍模板部分。 sizeof比它在第一眼看上去更有力量 –

相關問題