(《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...