偶爾來避難的地方~
我一般編程的時候,喜歡用我自己設(shè)計的string類,最近在設(shè)計結(jié)構(gòu)體的時候,我想到了一個適合結(jié)構(gòu)體使用的string類的設(shè)計方法,不過可能我比較孤陋寡聞,這個方法以前就有人實(shí)現(xiàn)過,不過還是記錄下來。一般來說,string,至少需要保存一個char*的指針和一個int的長度,復(fù)雜點(diǎn)的,可能還需要更多的成員。這樣的話,我們需要至少8個字節(jié)來保存這個string對象(32bit下)。在部分場合,我們可能會希望把一個指針替換為一個string對象,或者把一個string對象,替換為一個指針,而且我們對結(jié)構(gòu)體的大小很敏感,union也行不通。如果我們放一個string的指針,那么我們就需要new一個string對象出來,然后string內(nèi)部再去new一個char[]的數(shù)組。為此,我想了一個辦法來解決這個問題。我在string內(nèi)部引入一個context的東西,它保存了所有string的成員變量,然后結(jié)尾是字符串?dāng)?shù)組,形似下面這個結(jié)構(gòu):
Powered by: C++博客 Copyright © 飯中淹