容器(Containers)#
- C++ container 基本上分為四大類:
- Sequence containers
- Container adaptors
- Associative containers
- Unordered associative containers
- 還有兩個特殊 containers: valarray, bitset
Namearrayvectordequelistforward_listIteratorsbeginendbeginendbeginendbeginendbeginendCapacitysizeemptysizeemptycapacitysizeemptysizeemptyemptyAccess[]atfrontback[]atfrontback[]atfrontbackfrontbackfrontModifiersswappush_backpop_backinserteraseswapclearpush_backpop_backinserteraseswapclearpush_backpop_backinserteraseswapclearpush_frontpop_backinsert_aftererase_afterswapclearOtherssortreversesortreverse
基礎容器#
序列式容器(Sequence Containers)#
- 特點是不會對儲存的元素進行排序,元素排列的順序取決於儲存的順序。
容器適配器(Container Adaptors)#
- 用於封裝序列容器的類模板,在一般的序列容器的基礎上提供一些不同的功能,通過實現適配器的介面來提供不同的功能。
關聯性容器(Associative Containers)#
- 又名 Map、Dictionary,是一種抽象的資料結構,包含著類似於(key, value)的有序對(entry)。
- 一個關聯陣列中的有序對(entry)可以重複(如multimap),也可以不重複(map)。
- 利用雜湊表(Hash Table)或搜尋樹(search tree)實現,有些情況下,有可以使用直接定址的陣列、二元搜尋樹或其他專門的結構。
無序關聯容器(Unordered Associative Containers(C++11))#
- 通過雜湊表(Hash Table)實現的資料結構。
- 無序是指元素的名字(或者鍵值)的儲存是無序的;這與用平衡二元樹實現的有序的關聯性容器是相對概念。