STL 對定義的通用容器分三類:順序性容器、關聯式容器和容器適配器。
標準STL順序容器:vector、deque、list、forward_list、array和string.
標準STL關聯容器:set、multiset、map和multimap。
標準STL容器適配器:stack、queue、priority_queue。
每個容器定義在一個頭文件中文件名與類型名相同。
vector
可變大小數組。支持快速隨機訪問。在尾部之外的位置插入或刪除元素可能很慢。
deque
雙端隊列。支持快速隨機訪問。在頭尾位置插入或刪除速度很快。
list
雙向鏈表。支持雙向順序訪問。任何位置插入刪除操作速度都很快。
forward_list
單向鏈表。沒有.size操作。其迭代器不支持--運算符。操作特殊
array
固定大小數組。但支持整個array的拷貝或對象賦值操作。
string
保存字符。隨機訪問快。尾部插入或刪除快。
操作
push_back
除array和forward_list。將一個元素加入到一個容器的尾部。
push_front
list,forwad_list和deque支持。將元素插入到容器頭部
insert
都支持。將元素插入到迭代器所指定位置之前。
.back
返回尾元素的引用。
.front
返回首元素的引用。
刪除(array無) ?刪除元素可能會導致迭代器失效[311,315]
pop_front
刪除首元素,返回void
pop_back
刪除尾元素,返回void
erase(p)
刪除迭代器p所指定的元素,返回指向被刪元素之后元素的迭代器
clear
刪除所有元素
泛型算法
大多數定義在頭文件algorithm中 部分在numeric
迭代器使算法不依賴容器,但算法依賴于元素類型的操作
算法不會執行容器操作,迭代器可以完成向容器添加元素。