C STL中的六大件

2021-07-24 17:35:38 字數 1248 閱讀 1233

《stl原始碼剖析》學習筆記

容器(containers)

用來存放資料,包含多種資料結構,如:vector、list、deque、set、map等。

從實現的角度來看,stl容器是一種class template。

演算法(algorithms)

包括各種常用演算法,如:sort、search、copy、erase等。

從實現的角度來看,stl演算法是一種function template。

迭代器(iterators)

迭代器扮演著容器和演算法之間的膠合劑,即所謂的「泛型指標」。共有五種型別以及其它衍生變化。

從實現的角度來看,迭代器是一種將operator*,operator->, operator++, operator–等指標相關操作予以過載的class template。

所有stl容器都附帶有自己專屬的迭代器。原生指標(native pointer)也是一種迭代器。

仿函式(functors)

仿函式行為類似函式,可作為演算法的某種策略。

從實現的角度來看,仿函式是一種過載了operator()的class或class template。

一般函式指標可視為狹義的仿函式。

配接器(adapters)

介面卡是一種用來修飾容器或仿函式或迭代器介面的東西。

例如,stl提供的queue和stack,雖然看似容器,其實只能算是一種容器配接器,因為它們的底層實現完全借助deque,所有操作都由底層的deque提供。

改變functor介面的稱為function adapter; 改變container介面的,成為container adapter; 改變iterator介面的稱為iterator adapter。

配置器(allocators)

配置器負責空間配置與管理。

從實現的角度來看,配置器是乙個實現了動態空間配置、空間管理、空間釋放的class template。

container通過allocator取得資料儲存空間,

algorithm通過iterator訪問container內容,

functor可以協助algorithm完成不同的策略變化,

adapter可以修飾或套接functor。

六大元件之間的互動關係如下圖所示:

UiPath的三大件分別是什麼以及三大件的作用

uipath的三大件分別是什麼以及三大件的作用 uipath rpa平台包括三大產品 uipath studio uipath robot和uipath orchestrator。簡單來說 其中robot是機械人 studio是賦予智慧型的,orchestrator是管理機械人的。具體來說 uipa...

RPA的三大件是指什麼

rpa某種程度上理解的話,就是乙個具備一定智力的機械人,能替代人做一些重複性的數字勞動。這其中包含了三個關鍵資訊。一 機械人,它是任務執行的主體 二 機械人要智慧型,它要知道該怎麼做 三 要管理機械人,當機械人數量變的越來越多時,這一點尤為重要。實際上,這一套邏輯就是uipath rpa平台三大產品...

STL中六大元件的關係

六大元件 容器 containers 各種資料結構,如 vector,list,deque,set,map,用來存放 元素 就是template class。演演算法 algorithms 各種常用演演算法如 sort,search,copy,erase,就是template class。迭代器 i...