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