List(STL)
外觀
list是 C + + 標準程式庫內底的一个類似,會當簡單視之為雙向連結串列,以線性列的方式管理物件集合。list 的特色是佇咧集合的任何位置增加抑是刪除元素攏誠緊,但是無支持隨機存取。list 是 C + + 標準程式庫提供的眾多容器(container)之一,除了這以外閣有 vector、set、map、… 等咧。list 以模板的方式實現 ( 即泛型 ),會當處理任意型別的變數,包括使用者自定義的資料型態,比如講:伊會當是一个囥整數(int)型態的 list、原仔會當是囥字攕(char 抑是 string)型態的 list、抑是講囥使用者自定類別(user-defined class)的 list。
設計的
list 予人定義佇咧 < list > 標頭檔中。一如其他 STL 元件,list 屬於 std 名稱空間。
list 內部以資料結構的雙向連結串列實做,內部元素記持體逐位,互相以 link 共串接起來,逐个元素攏干焦知影其前一个元素以及後一个元素的位置。故要走揣規个 list,著愛對頭一个元素開始逐个落崎,無支持隨機存取 ( Random Access )。list 的強項是高效共插入去以及除去,佇咧 list 插入去抑是講除時只需要改動元素的 link 欄位,無需要搬振動元素,代價相對俗。
list 佇經常需要佇集合內部任意位置 ( 即除了頭尾以外的其他位置 ) 頻繁增刪元素的工課上表現優秀。若干焦需要集合尾仔增加元素,彼應該優先考慮 vector 容器,若是頭尾二爿共你斂元素,彼應該優先考慮 deque 容器。
成員函數概觀
- 迵天 ( Iterator )
- ` list . begin ( ) ` 回傳指向第一个元素的 Iterator。
- ` list . end ( ) ` 回傳指向上尾元素的後一位置的 Iterator。
- ` list . rbegin ( ) ` 回傳指向上尾个元素的反向 Iterator。
- ` list . rend ( ) ` 回傳指向第一个元素的前一个位置的反向 Iterator。
- Capacity / Size :
- ` list . empty ( ) ` 若是 list 內部為空,著回傳 true 值。
- ` list . size ( ) ` 回傳 list 內實際的元素個數。
- ` list . resize ( ) ` 重新分派 list 的長度。
- 存取元素的方法
- ` list . front ( ) ` 存取頭一个元素。
- ` list . back ( ) ` 取上尾个元素。
- Modify methods
- ` list . push _ front ( ) ` 增加一个新的元素佇 list 的前端。
- ` list . pop _ front ( ) ` 刪除 list 的第一个元素。
- ` list . push _ back ( ) ` 增加一个新的元素佇 list 的尾溜。
- ` list . pop _ back ( ) ` 刪除 list 的上尾个元素。
- ` list . insert ( ) `-插插抑是多個元素至 list 內的任意位置。
- ` list . erase ( ) `-刪除 list 中一个抑是多個元素。
- ` list . clear ( ) `-清空所有的元素。
- 重新配置/重設長度
- ` list . reserve ( ) `-如有必要,可改變 list 的容量大細(配置閣較濟的記持體)。
- ` list . resize ( ) `-改變 list 目前持有的元素個數。
使用說明
宣告
外部連結
- (英文)SGI 的 list 使用說明(SGI STL specification of list)
- (英文)C + + 參考:list(C + + reference : list)