摘要: 工作當中遇到過好幾次比較詭異的問題,最后基本都是編譯器搗的鬼,在此總結一下,以供大家參考,不對之處希望踴躍拍磚(peakflys原創作品,轉載注明 )
編譯環境:GCC 3.4.5 20051201 (項目組早期代碼從04年開始的),為了脫離實際項目代碼,下面僅用測試例子來反映基本一樣的問題。
閱讀全文
摘要: 工作兩年中,關于查找敏感型的代碼不少用到了hash_map,關于它的實現細節和需要注意的地方這里梳理一下。因為工作在linux環境下,所以這里hash_map的評述都是根據SGI的源碼。
hash_map說簡單一點就是一個hashtable桶和對于這個桶基本操作的再次封裝。即包含(圖片太麻煩,文字代替吧):1、_Hashtable* _M_ht;2、erase()、find()等函數。對應的iterator包含:1、_hashtable* _M_ht(這個就是hash_map中的hashtable指針);2、_Node* _M_cur(指向當前hashtable桶的某個節點)。_Node的結構為:
閱讀全文