STL學習筆記 2 容器的共通操作

2021-06-18 03:45:07 字數 2050 閱讀 4998

每個容器都有很多操作,以下操作為所有容器共有的

一.構造,拷貝和析構

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相同的型別。因為只是單純的鍵集合,沒有關聯的值...