C STL list雙向鍊錶容器學習筆記一

2021-06-20 01:27:23 字數 2126 閱讀 6851

list是雙向鍊錶的乙個泛化容器,支援前向和反向訪問list元素等。

建立list物件

為了管理雙向鍊錶的元素資料,必須先用list容器的建構函式,建立乙個list物件。

1) list()

建立乙個沒有任何元素的list物件。

下面例項**為建立空的list物件l。   

listl;

2) list(size_type n)

建立乙個鏈結有n個元素的list物件,每個元素採用它的型別下的預設值0.

下面例項**為建立了乙個具有10個元素的list物件l,每個元素的初始值為0。

listl(10);

3) list(size_type n,const t&value)

建立乙個鏈結了n個元素的list物件,這些元素的初始值為value。

下面例項**為建立了乙個具有10個元素的list物件l,每個元素的初始值為9.3。

listl(10,9.3)

初始化賦值

利用list提供的push_back函式,可將元素資料依次插入鍊錶中。push_back函式常用於list容器的初始化。

下面例項**為將整數1,2,3依次插入list物件的鍊錶中。

listl;

l.push_back(3);

l.push_back(6);

l.push_back(9);

元素的遍歷訪問

由於鍊錶中的資料需要乙個個元素進行遍歷,因此,list元素的遍歷只是用迭代器的方式進行。

list提供了begin和end函式,分別執行頭尾元素的迭代器

1) iterator begin()

2) iterator end()

元素的插入

由於list鍊錶元素的插入不需要對其他元素進行移位拷貝

除了push_back函式在尾部新增元素外,list還提供了在鏈首插入元素的push_front函式和在任一迭代器位置插入的insert函式。

1) void push_front(const t&)

2) iterator insert(iterator pos,const t&x)

下面例項**為依次插入6、8和9,然後呼叫insert函式在元素『8』前插入『7』,呼叫push_front函式在首元素前插入『5』。

#include#includeusing namespace std;

int main()

}

列印的結果為5 6 7 8 9

元素的刪除

list同樣具有高效的鍊錶元素刪除處理,包括刪除首元素的pop_front函式、刪除末尾元素的pop_back函式和刪除任一指定迭代器位置處元素的函式

1) void pop_front()

刪除list的第乙個鍊錶元素

2) void pop_back

刪除list的最後乙個鍊錶元素

3) iterator erase(iterator pos)

刪除pos所指向的鍊錶元素

4) iterator erase(iterator first,iterator last)

刪除迭代器區間(first,last)所指向的所有鍊錶元素

5) void clear()

刪除所有list鍊錶元素

6) void remove(const t&value)

刪除list鍊錶中所有元素值為value的元素

元素的反向遍歷

由於list容器的迭代器具有「--」操作,因此也定義了反向迭代器reverse_iterator和const_reverse_iterator,用反向鏈進行鍊錶元素的遍歷。

利用list雙向鍊錶容器提供的rbegin和rend函式,可返回反向鏈的首元素和尾元素的迭代器。

下面例項**為反向遍歷list鍊錶元素,然後輸出列印

listl;

list::reverse_iterator ri,riend;

riend=l.rend();

for(ri=l.rbegin();ri!=riend,ri++)

STL(八)list雙向鍊錶容器

list是雙向鍊錶的乙個泛化容器,實現了reversible container,front insertion sequence and back insertion sequence等概念的介面規範 不同於採用線性表順序儲存結構的vector and deque容器,list雙向鍊錶中任一位置的...

C STL之list雙向鍊錶容器

不同於採用線性表順序儲存結構的vector和deque容器,list雙向鍊錶中任一位置的元素查詢 插入和刪除,都具有高效的常數階演算法時間複雜度o 1 list技術原理 為了支援前向和反向訪問list容器的元素,list採用雙向迴圈的鍊錶結構組織資料元素,鍊錶的每個節點包括指向前驅的指標 實際資料和...

mysql 雙向鍊錶 雙向鍊錶

雙向鍊錶是鍊錶變型,相比於單鏈表導航或者是向前和向後的兩種方式。以下是重要的術語來理解雙向鍊錶的概念 link 鍊錶的每個鏈路儲存資料稱為乙個元素。linkedlist linkedlist包含連線鏈結到名為首先第乙個鏈結,並稱為最後的最後乙個鏈結 last 雙向鍊錶表示 按照如上圖中所示,以下是要...