2、鍊錶(list)的常用方法
鍊錶(list)是乙個雙向鍊錶,可高效地進行插入刪除元素。如圖,list的結構:
運用 list, 必須宣告請標頭檔案:#include
。
list 型別定義於 namespace std 中,是個 class template:
namespace std
第乙個 template 引數是元素型別,第二個 template 引數可有可無,用來指定記憶體模型。
list c //產生乙個空的list
list
c1(c2)
//產生乙個與c2同型的list(每個元素都被複製)
list
c(n)
//產生擁有n個元素的list
list
c(n,elem)
//產生擁有n個元素的list,每個元素都是elem的副本
c.size()
//返回元素個數
c.empty()
//判斷容器大小是否為零。等同於 size()==0,但可能更快
c.assign
(n,elem)
//將elem的n個拷貝賦值給c
//list不支援隨機訪問,只有front() 和 back() 能夠直接訪問元素
c.front()
//返回第乙個元素。不檢查元素存在與否
c.back()
//返回最後乙個元素。不檢查元素存在與否
c.begin()
//返回乙個雙向迭代器,指向第乙個元素
c.end()
//返回乙個雙向迭代器,指向最後元素的下一位置
c.rbegin()
//返回乙個逆向迭代器,指向逆向迭代的第乙個元素
c.rend()
//返回乙個逆向迭代器,指向逆向迭代的最後元素的下一位置
c.insert
(pos,elem)
//在迭代器pos所指位置上安插乙個elem副本,並返回新元素的位置
c.insert
(pos,n,elem)
//在迭代器pos所指位置上安插n個elem副本,無返回值
//插入和移除
c.push_back
(elem)
//在尾部追加乙個elem副本
c.pop_back()
//移除最後乙個元素(但不返回)
c.push_front
(elem)
//在頭部安插乙個elem副本
c.pop_front()
//移除第一元素〔但不返回)
c.remove
(val)
//移除所有其值為val的元素
c.erase
(pos)
//移除迭代器pos 所指元素,返回下一元素位置
c.erase
(beg, end)
//移除區間[beg ; end]內的所有元素,返回下一元素位置
c.resize
(num)
//將元素容量變為num。如果size
// 使用迭代器輸出 li 的元素
cout <<
"(3)"
;for
(list<
int>
:: iterator it = li.
begin()
; it != li.
end(
); it++
) cout <<
*it <<
" ";
//在尾部插入 9;
li.push_back(9
);
cout << endl <<
"(4)"
;for
(list<
int>
:: iterator it = li.
begin()
; it != li.
end(
); it++
) cout <<
*it <<
" ";
//移除最後乙個元素
li.pop_back()
; cout << endl <<
"(5)"
;for
(list<
int>
:: iterator it = li.
begin()
; it != li.
end(
); it++
) cout <<
*it <<
" ";
return0;
}
List c單向鍊錶
單鏈表演示 include typedef struct lnode 定義節點型別 lnode 函式名稱 creat 功能描述 生成單鏈表 返回型別 無返回值 函式引數 h 單鏈表頭指標 void creat lnode h 函式名稱 print 功能描述 遍歷單鏈表 返回型別 無返回值 函式引數 ...
STL之鍊錶
鍊錶,通過指標來實現。鍊錶是一種資料結構,而list只是stl對於鍊錶的一種實現,一萬個人有可能寫出一萬種不同的鍊錶來。文字內容 很長很詳細的鍊錶所有操作 理解 這篇寫的棧佇列都很好理解 鍊錶是一種常見的重要的資料結構。它是動態地進行儲存分配的一種結構。它可以根據需要開闢記憶體單元。鍊錶有乙個 頭指...
STL順序容器之鍊錶
list雙向鍊錶 forward list向前鍊錶 單向 操作都在煉表頭 2011年新標準 略 include list 結構體 變數名 for each ls2.begin ls2.end fun list iterator ite ls2.begin ite 只能 不能 2 3 無容量概念 si...