每個容器都有很多操作,以下操作為所有容器共有的:
一.構造,拷貝和析構
conttype c
建立乙個空容器,其中沒有任何元素
conttype c1(c2)
建立乙個同種類形容器的乙個copy
conttype c(beg,end)
建立乙個容器,以區間[beg,end)做為元素初值
c.~conttype ()
銷毀所有元素,並釋放記憶體
二.與大小相關的操作
c.size()
返回當前的元素數量
c.empty()
返回 bool 型,判斷容量是否為0。 等同與 size()==0, 但可能更快
c.max_size()
返回可容納元素的最大數量,很大乙個數
例子:[cpp]view plain
copy
#include
#include
using
namespace
std;
intmain(
intargc,
char
* argv)
coutreturn
0;
}
三.比較操作
c1 == c2
判斷 c1 是否等於 c2
c1 != c2
判斷 c1 是否不等於 c2
c1 < c2
判斷 c1 是否小於 c2
c1 > c2
判斷 c1 是否大於 c2
c1 <= c2
判斷 c1 是否小於等於 c2
c1 >= c2
判斷 c1 是否大於等於 c2
四.賦值操作
c1 = c2
將c2的全部元素賦值給c1,c1與c2必須是同種型別
五.交換操作
c1.swap(c2)
將c1和c2元素互換
swap(c1,c2)
同上,是個全域性函式
六.迭代器相關
c.begin()
返回乙個隨機訪問迭代器,指向第乙個元素
c.end()
返回乙個隨機訪問迭代器,指向最後元素的下乙個位置
c.rbegin()
返回乙個逆向迭代器,指向逆向迭代的第一元素,也就是最後乙個元素
c.rend()
返回乙個逆向迭代器,指向逆向迭代的最後元素的下乙個位置,也就是第乙個元素的前乙個位置
注意:*c.end與*c.rend都是沒有定義的。
七.插入與刪除
c.insert(pos,elem)
在pos位置前
插入乙個elem副本,並返回新元素位置
c.erase(beg,end)
移除 [beg,end) 區間內的所有元素,返回下一元素的位置
c.clear()
移除 所有元素,將容器清空
STL容器的共通能力和共通操作
一 容器的共通能力 所有stl容器都必須滿足三個最核心能力 1 所有stl容器提供的都是value語義而非reference語義 即容器進行元素的安插操作是,內部實施的是拷貝操作,置於容器中,因此要求容器的每乙個元素都能夠被拷貝 如果打算存放的物件不具有public copy建構函式,或者想要的不是...
STL學習筆記 不同容器的操作
1,deque類 deque與vector類似,是乙個動態陣列,與vector不同的是它可以在陣列的開頭和結尾插入和刪除資料 include include includeint main d.pop back d.pop front std cout after pop std endl std ...
stl之關聯容器學習筆記2
set型別容器 set容器只是單純的鍵的集合,其中的鍵必須唯一,且不能修改 const 舉個例子 某軟體提供黑名單功能,其黑名單就可用set容器配置。在做某項操作前,先檢查黑名單。2 set中,value type不是pair型別,而是與key type相同的型別。因為只是單純的鍵集合,沒有關聯的值...