1、容器(containers):STL內(nèi)部封裝好的數(shù)據(jù)結(jié)構(gòu),一種class template,常用的包括vector、list、deque、set、map、multiset、multimap等
2、算法(algorithm):一種function template,常用的有sort、search、copy、erase等
3、迭代器(iterator):泛型指針,是一種智能指針,是一種將operator*,operator->,operator++,operator–等指針相關(guān)操作予以重載的class template。所有STL容器都附帶自己的迭代器
4、配接器(adapter):一種用來修飾容器(container)或仿函數(shù)(functor)或迭代器(iterator)接口的東西。如queue和stack。它們的底部完全借助deque,所有操作都由底層的deque供應。改變functor接口者,稱為functor adapter,改變container接口者,稱為container adapter;改變iterator接口者,稱為iterator adapter。
5、配置器(allocator):負責空間配置與管理。是一個實現(xiàn)了動態(tài)空間配置、空間管理、空間釋放的class template。一般SGI STL為每一個容器都指定其缺省的空間配置器為alloc(SGI配置器)
6、仿函數(shù)(functor):行為類似函數(shù),就是使一個類的使用看上去象一個函數(shù),具有可配接性。它的具體實現(xiàn)就是通過在類中重載了operator(),使這個類具有了類似函數(shù)的行為,就是一個仿函數(shù)類了。一般函數(shù)指針、回調(diào)函數(shù)可視為狹義的仿函數(shù)。以操作數(shù)的個數(shù)劃分,可分為一元和二元仿函數(shù);以功能劃分,可分為算術(shù)運算、關(guān)系運算、邏輯運算三大類。這部分內(nèi)建的仿函數(shù),均放在頭文件里,使用時需引入頭文件
STL內(nèi)建仿函數(shù)分類包括:
1)算術(shù)類仿函數(shù)
加:plus
減:minus
乘:multiplies
除:divides
模?。簃odulus
否定:negate
2)關(guān)系運算類仿函數(shù)
等于:equal_to
不等于:not_equal_to
大于:greater
大于等于:greater_equal
小于:less
小于等于:less_equal
3)邏輯運算仿函數(shù)
邏輯與:logical_and
邏輯或:logical_or
邏輯否:logical_no