STL原始碼剖析 第一章 概論與版本介紹

2021-08-20 04:27:49 字數 912 閱讀 5605

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。

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

配接器(adapters):一種用來修飾容器或仿函式或迭代器介面的東西。例如stl提供的queue和stack雖然看似容器,其實只能算是一種容器介面卡,因為他們的底層全部借助deque,所有的操作都由底層的deque**。

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

stl六大元件互動關係

container通過allocator取得資料儲存空間,algorithm通過iterator訪問container內容,functor可以協助algorithm完成不同的策略變化,adapter可以修飾或套接functor。

STL原始碼分析(第一章緒論)

本書使用的是sgi實現的版本,1.容器 containers 各種資料結構,如vector,list,deque,set,map,用來存放資料。stl容器是一種類模板 calss template 2.演算法 algorithm 各種常用演算法如sort search copy erase等。stl...

第一章 概論

1.1軟體 程式 軟體工程 程式 資料結構 演算法 軟體架構 software architecture 軟體設計與實現 software design,implementation and debug 源 guanli source code control 配置管理 software confi...

第一章 Pandas概論

series 一維陣列,與numpy中的一維array類似。二者與python基本的資料結構list也很相近,其區別是 list中的元素可以是不同的資料型別,而array和series中則只允許儲存相同的資料型別,這樣可以更有效的使用記憶體,提高運算效率。time series 以時間為索引的ser...