STL(簡介模板庫)

2021-06-28 16:12:09 字數 1608 閱讀 2115

stl = standard template library,

標準模板庫

stl被內建在你的

編譯系統之內。stl的版本很多,常見的有hp stl、pj stl、 sgi stl等。

在c++標準中,stl被組織為下面的13個頭檔案:<

algorithm

>、<

deque

>、<

functional

>、<

iterator

>、<

array

>、<

vector

>、<

list

>、、<

map>、、<

memory

>、<

numeric

>、<

queue

>、<

set>、、<

stack

>和<

utility

>。

stl可分為容器(containers)、迭代器(iterators)、空間配置器(allocator)、配接器(adapters)、演算法(algorithms)、仿函式(functors)六個部分。

在實際的開發過程中,

資料結構本身的重要性不會遜於操作於

資料結構的演算法的重要性,當程式中存在著對時間要求很高的部分時,資料結構的選擇就顯得更加重要。

經典的 資料結構數量有限,但是我們常常重複著一些為了實現向量、

鍊錶等結構而編寫的**,這些**都十分相似,只是為了適應不同資料的變化而在細節上有所出入。stl容器就為我們提供了這樣的方便,它允許我們重複利用已有的實現構造自己的特定型別下的

資料結構,通過設定一些模板類,stl容器對最常用的資料結構提供了支援,這些模板的引數允許我們指定容器中元素的

資料型別,可以將我們許多重複而乏味的工作簡化。

容器部分主要由標頭檔案<

vector>,,,,,和組成。對於常用的一些容器和容器介面卡(可以看作由其它容器實現的容器),可以通過下表總結一下它們和相應標頭檔案的對應關係。

向量(vector) 連續儲存的元素

列表(list) 由節點組成的雙向鍊錶,每個結點包含著乙個元素

雙佇列(deque) 連續儲存的指向不同元素的指標所組成的陣列

集合(set) 由節點組成的紅黑樹,每個節點都包含著乙個元素,節點之間以某種作用於元素對的謂詞排列,沒有兩個不同的元素能夠擁有相同的次序

多重集合(multiset) 允許存在兩個次序相等的元素的集合

(stack) 後進先出的值的排列

佇列(queue) 先進先出的值的排列

優先佇列(priority_queue) 元素的次序是由作用於所儲存的值對上的某種謂詞決定的的一種佇列

對映(map) 由對組成的集合,以某種作用於鍵對上的謂詞排列

多重對映(multimap) 允許鍵對有相等的次序的對映

STL標準模板庫簡介h

容器 各種資料結構,如vector,list,deque,set,map等資料結構 演算法 各種常用演算法,如sort,find,copy,each等 迭代器 扮演了容器和演算法之間的膠合劑 仿函式 行為類似函式,可作為演算法的某種策咯 介面卡 一種用來修飾容器或者仿函式或迭代器介面的東西 空間介面...

STL 標準模板庫)

此篇只是乙個目錄,將分成單篇去完成 stl 主要有三個部分組成 容器,迭代器,演算法。順序容器 向量 vector 雙端佇列 dequeue 表 list ps copy 方法 關聯容器 集合 set 多重集合 multiset 對映 map 多重對映 multimap 容器介面卡 棧 stack ...

Stl(標準模板庫)

stl 標準模板庫 stl的目的是標準化元件,這樣就不用重新開發,可以使用現成的元件。我們常用到的stl容器有vector list deque map multimap set和multiset。1.簡單概括 如果需要高效的隨機訪問,不在乎插入和刪除的效率,使用vector 類似陣列 2 如果需要...