1,vector
底層實現使用線性表,,
2,list
底層就是鍊錶
3,deque
底層是雙向的線性表,也就是雙向介面,意思在頭和尾都可以進行插入和刪除操作。
4,map
底層是紅黑樹
5,set
底層是紅黑樹
各種常用的演算法,如sort,search,copy
容器和演算法之間的粘合劑,是所謂的泛型指標。
具體實現時,就是乙個模板類,將operator -> operator * operator -- operator ++,等原生指標可以執行的操作符
進行過載,所有的stl容器都有自己的 專屬迭代器,只有容器本身知道怎樣遍歷自己的元素。原生指標也是迭代器。
一種用來修飾 stl容器,迭代器和仿函式介面的工具,如,stack queue都不是實際的容器,只是經過介面卡修飾的
deque。
負責空間的管理和配置,實現的角度來說,是定義乙個動態空間配置 ,空間管理,空間釋放的模板類。
仿函式就是行為類似於函式,可作為某種演算法策略。從實現的角度看,仿函式是過載了operator()的模板類。
一般的函式指標也是狹義的仿函式。
總結:容器通過配置器獲得空間,演算法通過迭代器操作容器元素,仿函式輔助演算法完成不同的策略優化,
STL六大元件
stl提供六大元件,彼此可以組合套用。1 容器 containers 各種資料結構。如vector,list,deque,set,map,用來存放資料。容器又可以分為順序容器和關聯容器.順序容器 vector,list,deque,stack,queue,heap,priority queue,sl...
STL 六大元件
1.容器 containers 各種資料結構,如vector,list,deque,set,map,用來存放資料。從實現的角度看,stl容器是一種class template。2.演算法 algorithms 各種常用的演算法如sort,search,copy,erase 從實現的角度看,stl演算...
STL六大元件
容器 containers 各種資料結構,如 vector list deque set map 用來存放資料。演算法 algorithms 各種常用演算法,如 sort search copy erase 分配器 allocators 負責空間配置與管理。迭代器 iterators 容器與演算法之...