當讀到這本書的時候這有種相見恨晚的感覺啊! 邊讀以前寫過的一行行stl**就在自己的腦海中浮現。
下面我一條條總結我讀stl的感想:
第一條:善用typedef
之前的訪問者模式例子其實可以使用typedef 來寫出節省修改型別時間的**
前面的範圍,由於我使用的是osg::bouindgbox 使得我的**依賴於osg,但是很多人不使用osg。後面我就利用typedef重寫了一遍:
//typedef osg::boundingbox cbox;
把裡面所有的osg::boudingbox 都替換成cbox, 這樣使用者就可以隨意替換
class boudingbox
;typedef boudingbox cbox;
同樣的其實對於stl的容器也可以使用這種方法:
在後面的八叉樹分割三維模型我運用了幾種容器,也是可以用typedef來進行優化:
typedef std::hash_mapindextreecontainer;
typedef indextreecontainer::iterator indextreecontaineriter;
typedef std::listindexarraycontainer;
typedef indexarraycontainer::iterator indexarraycontaineriter;
尤其是冗長的iterater 每次寫都是一大段文字的趕腳
Effective STL 關聯容器
在stl中有很多這樣的函式,它們需要確定兩個值是否相同,但這些函式以不同的方式來判斷這兩個值是否相同。find對相同的定義是等價的,是以operator 為基礎,而set insert對系統的定義是等價。因此需要了解它們之間的區別。在實際過程中,相等的概念是基於operator 的,如果表示式x y...
《Effective STL》讀書筆記
工作之後更多地接觸到stl,在專案中stl的使用更是屢見不鮮。最近在看此書,有必要小小地總結一下。1.用empty 而不用size 0去判斷容器是否為空 從功能上看,兩者是一樣的。但效能上可能會有所差別。對於vector而言,size 其實就是end begin 因為它是連續記憶體分布,所以這樣計算...
effective stl 容器部分總結
還是很喜歡effective部分的書,看了好幾遍,這裡把stl中和容器相關的一些基本的注意的點進行介紹總結,之後對迭代器等進行總結 1 對序列容器中需要逐個刪除的時候,不能像關聯容器那樣事先對迭代器進行 操作,因為刪除乙個迭代器,會使他自己無效,後面的迭代器也無效,所以應該儲存刪除erase返回的下...