STL 六大元件

2021-08-19 23:02:26 字數 1014 閱讀 4312

1.容器(containers):

各種資料結構,如vector,list,deque,set,map,用來存放資料。從實現的角度看,stl容器是一種class template。

2.演算法(algorithms):各種常用的演算法如sort,search,copy,erase……從實現的角度看,stl演算法是一種function template。

3.迭代器(iterators):扮演容器與演算法間的膠合劑,是所謂的「泛型指標」。共有5種型別,以及其它衍生變化。從實現的角度看,stl迭代器是一種將operator*,operator->,operator++,operator–等指標相關操作予以過載的class template。所有的stl容器都附帶有自己專屬的迭代器。原生指標(native pointer)也是一種迭代器。

4.仿函式(functions):行為類似函式,可作為演算法的某種策略(policy)。從實現的角度看,仿函式是一種過載了operator()的class或class template。一般函式指標可視為俠義的仿函式。

5.配接器(adapters):一種用來修飾容器(containers)或仿函式(functions)或迭代器(adapters)介面的東西。例如,stl提供了queue和stack,雖然看似容器,其實只能算是一種容器配接器,因為它們的底層完全借助deque,所有操作都由底層的deque**。改變functor介面者,稱為function adapter;改變container介面者,稱為container adapter;改變iterator介面者,稱為iterator adapter。

6.配置器(allocators):負責空間配置與管理。從實現的角度看,stl配置器是乙個實現了動態空間配置、空間管理、空間釋放的class template。

stl六大元件的互動關係總結:container通過allocator取得資料儲存空間,algorithm通過iterator訪問container內容,functor可以協助algorithm完成不同的策肋變化,adaptor可以修飾或者套接functor。

form《stl原始碼剖析》

STL六大元件

stl提供六大元件,彼此可以組合套用。1 容器 containers 各種資料結構。如vector,list,deque,set,map,用來存放資料。容器又可以分為順序容器和關聯容器.順序容器 vector,list,deque,stack,queue,heap,priority queue,sl...

STL六大元件

容器 containers 各種資料結構,如 vector list deque set map 用來存放資料。演算法 algorithms 各種常用演算法,如 sort search copy erase 分配器 allocators 負責空間配置與管理。迭代器 iterators 容器與演算法之...

STL六大元件

1,vector 底層實現使用線性表,2,list 底層就是鍊錶 3,deque 底層是雙向的線性表,也就是雙向介面,意思在頭和尾都可以進行插入和刪除操作。4,map 底層是紅黑樹 5,set 底層是紅黑樹 各種常用的演算法,如sort,search,copy 容器和演算法之間的粘合劑,是所謂的泛型...