1.list初始化:
(1)listt; //沒有任何元素
(2)listt(10); //建立有
10個元素的鍊錶
(3)listt(10,3); //建立有
10個元素的鍊錶,並且每個元素為3
2.對鍊錶進行插入操作:
(1)前插法:在鍊錶頭部插入新元素,鍊錶自動擴張,形式:
t.push_front(8);
(2)尾插法:在鍊錶尾部插入新元素,鍊錶自動擴張,形式:
t.push_back(9);
(3)中間插入:用insert()函式,引數是要插入位置的迭代器,例如:
it=t.begin();
it++;
//注意鍊錶的迭代器只能進行++或
--操作,而不能進行+n
t.insert(it,20);
//操作 3.
鍊錶的遍歷:
(1)反向遍歷:形式:
list::reverse_iterator rit;
for(rit=t.rbegin();rit!=t.rend();rit++)
(2)正向遍歷:形似:
list:iterator it;
for(it=t.begin();it!=t.end();it++)
4.刪除元素的方法
(1)remove()方法刪除乙個元素,值相同的元素都會被刪除,引數為元素的值,而不是迭代器的位置
,例如:
t.remove(8);
(2)使用
pop_front()
方法刪除鍊錶首元素,例如
: t.pop_front();
(3)使用
pop_back()
方法刪除鍊錶尾元素,例如:
t.pop_back();
(4)使用
erase()
方法刪除迭代器位置上的元素,例如:
it=t.begin();
it++;
//注意鍊錶的迭代器只能進行++或
--操作,而不能進行+n
it++;
//操作,但是
for(it=t.begin();it!=t.end();it++)
這個不影響
t.erase(it);
(5)clear(),清空鍊錶,例如:
t.clear();
(6)size(),求元素的個數,例如:
cout<
(7)find(),在鍊錶中查詢元素,標頭檔案為
#include
若找到,則返回該元素,迭代器的位置,若找不到,則返回
end()
迭代器的位置。查詢的形式為:
list::iterator it;
it=find(t.begin(),t.end(),8);
//這點和其他的不同
,list
的要有查詢區間的
(8)sort()方法對鍊錶進行排序,預設的是公升序排列,形式:
t.sort();
(9)unique()方法可以刪除連續重複的元素,注意是連續重複的元素,
例如是1 2 3 4 1 則不可刪除1。
C STL之雙向鍊錶list
一 list的基本使用以及耗時測試 include include qsort bsearch null includeusing namespace std const int size 100000 int main cout 插入1000000個元素耗時為 clock start endl c...
C STL之list雙向鍊錶容器
不同於採用線性表順序儲存結構的vector和deque容器,list雙向鍊錶中任一位置的元素查詢 插入和刪除,都具有高效的常數階演算法時間複雜度o 1 list技術原理 為了支援前向和反向訪問list容器的元素,list採用雙向迴圈的鍊錶結構組織資料元素,鍊錶的每個節點包括指向前驅的指標 實際資料和...
C STL 10 list 雙向鍊錶
鍊錶 缺點 無法訪問位置 沒有index的概念。陣列可以 index 優點 在序列已知的任何位置插入或刪除元素。可以合併 去重 交換。一樣的增刪改查上 void listtest cout endl int a 5 int b 7 listlst1 a,a 5 listlst2 b,b 7 cout...