摘要: 工作當(dāng)中遇到過好幾次比較詭異的問題,最后基本都是編譯器搗的鬼,在此總結(jié)一下,以供大家參考,不對之處希望踴躍拍磚(peakflys原創(chuàng)作品,轉(zhuǎn)載注明 )
編譯環(huán)境:GCC 3.4.5 20051201 (項(xiàng)目組早期代碼從04年開始的),為了脫離實(shí)際項(xiàng)目代碼,下面僅用測試?yán)觼矸从郴疽粯拥膯栴}。
閱讀全文
摘要: 工作兩年中,關(guān)于查找敏感型的代碼不少用到了hash_map,關(guān)于它的實(shí)現(xiàn)細(xì)節(jié)和需要注意的地方這里梳理一下。因?yàn)楣ぷ髟趌inux環(huán)境下,所以這里hash_map的評述都是根據(jù)SGI的源碼。
hash_map說簡單一點(diǎn)就是一個hashtable桶和對于這個桶基本操作的再次封裝。即包含(圖片太麻煩,文字代替吧):1、_Hashtable* _M_ht;2、erase()、find()等函數(shù)。對應(yīng)的iterator包含:1、_hashtable* _M_ht(這個就是hash_map中的hashtable指針);2、_Node* _M_cur(指向當(dāng)前hashtable桶的某個節(jié)點(diǎn))。_Node的結(jié)構(gòu)為:
閱讀全文