對于STL的掌握, 侯捷將境界分為三層: 會用,明理,能擴(kuò)展。 我自己在學(xué)習(xí)STL的過程中也有類似體會,為避免初學(xué)者走彎路, 下面是個(gè)人的一些學(xué)習(xí)經(jīng)驗(yàn)和參考書籍:
《C++標(biāo)準(zhǔn)程序庫:自修教程與參考手冊》這本書既是STL學(xué)習(xí)的入門書,也是日后的重要參考手冊,遇到任何STL用法方面的問題,基本上都可以在這本書上找到答案。
《Effective STL》 如果說前面這本書讓你使用STL入門, 那么這本書是告訴你如何高效的使用STL以及如何規(guī)避STL的缺陷和陷阱。
看完前面的2本書, 在實(shí)際工作中盡量多用STL,經(jīng)過一段時(shí)間, 基本上已經(jīng)到達(dá) "會用" 的境界了。
在 “明理” 階段,個(gè)人推薦看《
泛型編程與STL》,這本書是STL的著者寫的, 他把STL的設(shè)計(jì)理念和架構(gòu)層次解釋的非常清楚,內(nèi)部詳細(xì)描述了STL的各種泛型需要滿足的concepts, 該書也是STL實(shí)作是否符合標(biāo)準(zhǔn)的參考手冊。個(gè)人建議即使你只關(guān)注“會用”STL, 也看一下這本書, 這本書會讓你認(rèn)識STL的本質(zhì)。
最后一個(gè)階段是擴(kuò)展, 甚至自己重寫STL, 參考書是
《STL源碼剖析》, 這本書是個(gè)人學(xué)習(xí)STL源碼的絕佳書籍, 強(qiáng)烈推薦。當(dāng)然看STL源碼需要有一定的 “模板” 功力, 如果功力不夠,可以先看下
《C++ Templates》, 這是一本學(xué)習(xí)模板編程的標(biāo)準(zhǔn)書。
個(gè)人嘗試山寨了下STL, 對STL的6大組件(containers, algorithms, iterators, functors, adaptors, allocators)都有涉及。 當(dāng)然山寨STL不是為了重復(fù)造輪子,而是為了更好的理解和擴(kuò)展STL。
源碼下載:
SimpleSTL
posted on 2013-04-03 16:54
Richard Wei 閱讀(2530)
評論(2) 編輯 收藏 引用 所屬分類:
STL&GP