容器 (資料類型)
类,数据结构在计算机科学
在電腦科學中,容器是指一種類、數據結構、[1][2]或者抽象資料類型,其實例為其他類的對象。換言之,它們以一種遵循特定訪問規則的方法來儲存對象。容器的大小取決於其包含的對象(或元素)的數目。潛在的不同容器類型的實現可能在空間和時間複雜度上有所差別,這使得在給定應用場景中選擇合適的某種實現具有靈活性。
概覽
編輯容器可以三種方式看待:
- 訪問:即訪問容器中對象的方式。
- 儲存:即儲存容器中對象的方式。
- 遍歷:即遍歷容器中對象的方式。
典型的容器實現如下的方法:
- 建立一個新的空容器(即建構函式)。
- 向容器中插入對象。
- 從容器中刪除對象。
- 刪除容器中的所有對象(即清空)。
- 訪問容器中的對象。
- 取得容器中對象的數目(即尺寸)。
並非所有設計遵循以上要求,例如C++標準庫的std::array
不提供清空,而std::forward_list
不提供對象計數。
容器有時結合迭代器實現。
分類
編輯按儲存類型
編輯單值或關聯容器
編輯圖形容器
編輯部件工具箱使用特殊控制項(也稱作容器)去將其他控制項分組(窗口、面板等)。除它們的圖形特性之外,它們有和容器類一致的表現:它們存有它們子控制項的列表,並且允許對子控制項進行增加、刪除或取得等操作。
不同實現
編輯- .NET: System.Collections (MSDN)(頁面存檔備份,存於互聯網檔案館)
- ActionScript3: AS3Commons Collections Framework
- C++: C++標準庫 (SC++L) or the obsolete 標準模板庫 (STL)
- Java: Java集合框架(JCF)
- Objective-C: Foundation Kit的部分。
- PL/SQL: 集合[6]
- Python: 內建容器 list、dict、tuple和set,可使用collections(頁面存檔備份,存於互聯網檔案館)模組進一步拓展。
- Scala: 在
scala.collection.mutable
andscala.collection.immutable
包中的可變及不可變容器。
參見
編輯參考資料
編輯- ^ Paul E. Black (ed.), entry for data structure in Dictionary of Algorithms and Data Structures. US National Institute of Standards and Technology.15 December 2004. Accessed on Oct 04, 2011.
- ^ Entry data structure in the Encyclopædia Britannica (2009) Online entry (頁面存檔備份,存於互聯網檔案館) Accessed on Oct 04, 2011.
- ^ LIFO(investopedia.com). [2016-08-19]. (原始內容存檔於2016-08-24).
- ^ FIFO(investopedia.com). [2016-08-19]. (原始內容存檔於2016-08-09).
- ^ FIFO(businessdictionary.com). [2016-08-19]. (原始內容存檔於2016-08-27).
- ^ PL/SQL Collections and Records. [2013-04-20]. (原始內容存檔於2013-05-09).
外部連結
編輯- Container Data Structure Declaration and Initialization(頁面存檔備份,存於互聯網檔案館)
- Container data structures(頁面存檔備份,存於互聯網檔案館)
- Python SortedContainers module(頁面存檔備份,存於互聯網檔案館) A fast implementation of sorted list, sorted dict, and sorted set data types in Python.