跳至內容

List(STL)

出自Taiwan Tongues 台語維基
於 2025年8月23日 (六) 18:32 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

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)