STL标准库六大组件
2019獨角獸企業重金招聘Python工程師標準>>>
STL六大組件簡介
1、容器(Containers):各種數據結構,如Vector,List,Deque,Set,Map,用來存放數據,STL容器是一種Class Template,就體積而言,這一部分很像冰山載海面的比率。
2、算法(Algorithms):各種常用算法如Sort,Search,Copy,Erase,從實現的角度來看,STL算法是一種Function Templates。
3、迭代器(Iterators):扮演容器與算法之間的膠合劑,是所謂的“泛型指針”,共有五種類型,以及其它衍生變化,從實現的角度來看,迭代器是一種將:Operators*,Operator->,Operator++,Operator--等相關操作予以重載的Class Template。所有STL容器都附帶有自己專屬的迭代器——是的,只有容器設計者才知道如何遍歷自己的元素,原生指針(Native pointer)也是一種迭代器。
4、仿函數(Functors): 行為類似函數,可作為算法的某種策略(Policy),從實現的角度來看,仿函數是一種重載了Operator()的Class?或?Class Template。一般函數指針可視為狹義的仿函數。
5、配接器(適配器)(Adapters):一種用來修飾容器(Containers)或仿函數(Functors)或迭代器(Iterators)接口的東西,例如:STL提供的Queue和Stack,雖然看似容器,其實只能算是一種容器配接器,因為 它們的底部完全借助Deque,所有操作有底層的Deque供應。改變Functor接口者,稱為Function Adapter;改變Container接口者,稱為Container Adapter;改變Iterator接口者,稱為Iterator Adapter。配接器的實現技術很難一言蔽之,必須逐一分析。
6、分配器(Allocators):負責空間配置與管理,從實現的角度來看,配置器是一個實現了動態空間配置、空間管理、空間釋放的Class Template。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??——《STL源碼剖析》
轉載于:https://my.oschina.net/feistel/blog/3021224
總結
以上是生活随笔為你收集整理的STL标准库六大组件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL入门系列:查询简介(四)之类型
- 下一篇: MVC的开发模式简单介绍