STL之容器(containers) 簡介

qunews發表於2014-05-14

什麼是容器?

容器用來儲存資料的,資料可以是使用者自定義型別(物件),也可以是預定義型別,c++中的容器主要使用如vector,list (順序容器) 這些都是已經封裝好了.

1.結構(struct): vector,list,deque,set,map…

2.演算法(algorithms):sort,search,copy,erase…

3.迭代器(iterators):扮演容器與演算法之間的膠合劑,是所謂的“泛型指標”,從實現的角度來看,迭代器是一種將 operator*,operator->,operator++,operator—等指標相關操作予以搬弄是非載的class template。所有STL容器都附帶有自己專屬的迭代器,只有容器設計都才知道如何遍歷自己的元素。原生指標也是一種迭代器。

4.仿函式(functors):仿函式不是函式,而是一個類,這個類過載了()操作符;仿函式呼叫過程是這樣的:find_if(nodeTable.begin(), nodeTable.end(), Comparer(ch))中 Comparer(ch)只是建立了 Comparer 類的匿名方法,過載的 operator() 真正的呼叫是在接下來將要看到的 find_if 模板函式的這一句 pred(*first); 程式碼中不使用 find 而使用 find_if 是因為需要進行查詢的不是 prime type 而是自行編寫的符合型別。

5.配接器(adapters):一種用來修飾視窗或者仿函式或者迭代器介面的東西。

6.配置器(allocators):負責空間配置與管理。

 

之後會從這幾個方面來討論 STL.

相關文章