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 雙向鍊錶表示 按照如上圖中所示,以下是要...