1. 程式人生 > >The Standard Template Library

The Standard Template Library

  • Containers: 容器是一大堆元素的集合,主要分為三類容器: (1)序列式容器(sequence containers) 序列式容器經常被實現為array或者linked list。這是一種有序(ordered)的集合,每個元素都有確鑿的位置,主要取決於插入時機和地點,與元素的數值無關。STL中包含的sequence containers主要有:vector, deque, list, forward_list, array (2)關聯式容器(associative containers) 關聯式容器經常被實現為binary tree。這是一種已排序(sorted)的集合,位置取決於其value(attention:如果元素是單值,則按元素值排序;若元素是鍵值對,則按key來排序),因此這種容器和插入的時間是無關的。STL中包括的associative containers有:set, multiset, map, multimap。 (3)無序容器(unordered containers) 無序容器經常被實現為hash table。這是一種無序(unordered)的集合,每個元素的位置都是任意的,其被生產出來的特點是確定某特定的元素是否在次集合內。所以無所謂插入順序以及排序順序。STL中主要有:unordered_multiset, unordered_map, unordered_multimap