閱讀effective stl 有感(一)

2021-07-30 23:43:33 字數 732 閱讀 3163

當讀到這本書的時候這有種相見恨晚的感覺啊! 邊讀以前寫過的一行行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返回的下...