由於vector的使用,經常會出現迭代器錯誤,主要是因為vector在每次更改完資料就會重新配置,迭代器就會失效,list的結構和vector的設計差異決定了list在這方面具有優越性,list的insert和splice操作不會造成迭代器失效,並且erase也只會是讓當前元素的迭代器失效。
list的結構如下:就是乙個雙向鍊錶的設計結構
templatestruct list_node
;
看一段測試**了解list:
#include #include #includeusing namespace std;
int main()
cout<
下面看一下部分操作的**:
#include #include #includeusing namespace std;
int main()
; int b=;
listilist1(a,a+5),ilist2(b,b+5);
list::iterator ite=find(ilist1.begin(),ilist1.end(),4);
ilist1.splice(ite,ilist2);
for (ite=ilist1.begin();ite!=ilist1.end();++ite)
cout<
STL學習筆記 序列式容器deque
上一次說了list,現在再看一下序列式容器的另外幾種,常用的stack,queue,還有乙個deque,這個我不常用,所以先看一下deque的用法 1.deque vector是單向開口的連續線性空間,list是不連續的空間,支援兩邊操作,deque是一種雙向開口的連續線性空間,支援兩邊操作。由於d...
STL 序列式容器細節
stl 序列式容器細節 一 概論 1 序列式容器 array build in c 內建 vector heap內含乙個vector priority queue內含乙個heap list slist deque stack內含乙個deque queue內含乙個deque 2 關聯式容器 rb tr...
STL序列式容器 heap
stl heap主要有以下幾種操作組成 make heap,建堆 sort heap,堆排序 pop heap,取出堆頂元素 push heap,調整堆 heap並不歸屬於stl容器元件,它是個幕後英雄,扮演priority queue的助手。binary max heap適合作為priority ...