STL使用篇__list

Enjoy_process發表於2019-03-03

                                                         list

 

 

一、容器的共性

stl__容器

 

二、順序容器的共性

stl__順序容器

 

三、list的特性

list<T>l1(l2) 複製 l2

it l.rbegin()

返回“反向連結串列”的第1個元素的地址。即返回連結串列的最後一個元素的地址。

it l.rend()

返回“反向連結串列”的最後一個元素的下一個位置,這麼說可能不正確,這個函式主要用於反向連結串列的操作。返回的是地址,該地址沒有元素。

void l.remove (const value_type& val)

刪除值等於val的元素,得一模一樣才能刪除,估計比對的是整塊記憶體的二進位制。與erase不同。

void l.remove_if (Predicate pred)

刪除元素。將連結串列中每個元素單獨傳入pred函式,只要返回的結果為true,就刪除。pred不用加括號,它類似於sort裡的comp。

void l.merge (list& x)

將連結串列x接在l之後,合併為一個連結串列l,合併完後連結串列x中的元素為0了,但x仍存在。(不排序)

void l.merge (list& x, Compare comp) 將兩連結串列合併在一起,按照comp函式的排序規則來排序。

void l.sort()

排序,按照預設的方法排序,一般為增序,比如整數、字串比較

void l.sort(comp) 排序,按照comp函式所返回的那樣,若true則不改變位置,若false則交換位置。

void l.splice (it pos, list& x)

將連結串列x中所有的元素“剪下”到pos處,其實只是指標操作,不用賦值。

void l.splice (it pos, list& x, it i) 將連結串列x中的元素i“剪下”到pos處,只是單個元素。
void l.splice (it pos, list& x, it first, it last) 將連結串列x中first到last這段元素都遷移到l中的pos處。

void l.unique() 

刪除重複的多餘元素,使每個元素唯一。相同元素的第一個都不會刪。

void l.unique (Predicate pred) 以pred函式為依據,刪除重複的元素,當pred返回true時則刪除其中一個。

void l.reverse()

將所有元素的順序置為相反,比如升序變為降序。

相關文章