C++標準模板庫(STL)的概念
<上一節
下一節>
STL(Standard Template Library)標準模板庫是標準C++庫中的一部分,標準模板庫為C++提供了完善的數據結構及算法。標準模板庫包括三部分:容器、算法和迭代器。容器是對象的集合,STL的容器有:vector、stack、queue、deque、list、set和map等。STL算法是對容器進行處理,比如排序、合并等操作。迭代器則是訪問容器的一種機制。
在C++定義數組時,我們必須提前知曉數組的大小,然后為了避免因為新數據的加入而導致越界,因而需要不斷地進行越界檢測,這樣一來效率就大大降低了。而使用STL有一個非常大的優點就是不需要提前知道數組的大小,當有新元素加入時,容器會自動增大,刪除元素時,容器會自動減小。
除此之外,STL還提供了大量的算法用于操作容器。STL具有可擴展性,也就是說可以增加新的容器和算法。
STL基本容器可以分為:
序列式容器可以像數組一樣通過下標進行訪問。關聯式容器則是需要通過鍵值進行訪問,關聯式容器可以將任何類型的數據作為鍵值。
在C++定義數組時,我們必須提前知曉數組的大小,然后為了避免因為新數據的加入而導致越界,因而需要不斷地進行越界檢測,這樣一來效率就大大降低了。而使用STL有一個非常大的優點就是不需要提前知道數組的大小,當有新元素加入時,容器會自動增大,刪除元素時,容器會自動減小。
除此之外,STL還提供了大量的算法用于操作容器。STL具有可擴展性,也就是說可以增加新的容器和算法。
STL基本容器可以分為:
- 序列式容器,主要有list、vector、deque
- 關聯式容器,主要有set、multiset、map、multimap
序列式容器可以像數組一樣通過下標進行訪問。關聯式容器則是需要通過鍵值進行訪問,關聯式容器可以將任何類型的數據作為鍵值。
容器 | 類型 | 描述 |
---|---|---|
vector | 序列式容器 | 按照需要改變長度的數組 |
list | 序列式容器 | 雙向鏈表 |
deque | 序列式容器 | 可以操作兩端的數組 |
set | 關聯式容器 | 集合 |
multiset | 關聯式容器 | 允許重復的集合 |
map | 關聯式容器 | 圖表 |
multimap | 關聯式容器 | 允許重復的圖表 |
<上一節
下一節>