簡要介紹
:stl可分為容器(containers)、迭代器(iterators)、空間配置器(allocator)、配接器(adapters)、演算法(algorithms)、仿函式(functors)六個部分。
在c++
標準中,
stl被組織為下面的
17個頭檔案:
<
algorithm
>
、<
deque
>
、<
functional
>
、<
iterator
>
、<
array
>
、<
vector
>
、<
list
>、、
、、、<
numeric
>
、<
queue
>
、<
set>、、
<
stack
>
和<
utility
>
。c++中有兩種型別的容器:順序容器和關聯容器。順序容器主要有vector(陣列)、list(雙向鍊錶)、deque(雙向佇列)等。其中vector表示一段連續的記憶體,基於陣列實現,list表示非連續的記憶體,基於鍊錶實現,deque與vector類似,但是對首元素提供插入和刪除的雙向支援。關聯容器主要有map和set。map是key-value形式,set是單值。map和set只能存放唯一的key,multimap和multiset可以存放多個相同的key。
容器的比較與選擇:
對於順序容器來說,vector(適用於新增查詢,刪除效率低,且插入刪除元素迭代器失效)list(適用於插入刪除元素,新增查詢效率低,插入刪除元素迭代器不會失效(僅被刪除節點迭代器失效))deque(二者的中和,所有功能執行效率較高,刪除中間元素,所有迭代器失效)
迭代器的簡單用法:
#include
#include
#include
using namespace std;
vector
v;int main()
for(int i = 0; i< v.size(); i++)
{cout<
<
::iterator it; for( it = v.begin(); it != v.end(); it++) { cout<<*it<
初識C 標準模板庫STL
在c 程式設計中常見到 stl 這個英文縮寫,其實這是c 的標準模板庫 stl standard template library 的意思,它其實裡面包含了很多存放資料並操作各種資料結構的模板,也叫容器,這些容器可以重複使用,並且整合了大量的優秀演算法,大大簡化了我們程式設計時組織資料結構的步驟,這...
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 如果需要...