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