STL六大組件

標準模板庫(STL):
STL庫是用模板(template)寫出來的,模板是STL庫的基礎。STL大體由如下幾部分組成:
  ——容器(container)
  ——迭代器(iterator)
  ——容器適配器(Adapter)
  ——算法(algorithm)
  ——函數對象(functor)
  ——配置器(allocator)    //底層實現
容器、迭代器、容器適配器都是用 類模板實現的, 迭代器用於遍歷容器中的每個元素, 算法用於操做數據。
(使用了C++11新特性,編譯的時候要加上:-std=c++11


容器:
     STL運用模板類庫機制,爲數據存儲,查找和其餘操做提供了一整套方案,大大提升了程序的正確性。不只如此,類庫對經常使用的不少操做進行了優化處理,大大提升了程序的效率。
容器是可容納一些數據的類模板,STL中有 vector、list、deque、(序列式容器)set/multiset、map/multimap(關聯式容器) 等容器。


迭代器:
     在有的專業書籍中,迭代器也稱遊標,能夠將迭代器初步理解爲廣義指針,迭代器和指針功能很像,迭代器是經過重載一元的」*」和」->」來從容器中間接地返回一個值。
迭代器有5種,依次爲:
   ——隨機訪問迭代器(Random Access Iterator)
   ——雙向迭代器(Bidirectional Iterator)
   ——前向迭代器(Forward Iterator)
   ——輸入迭代器(Input Iterator)
   ——輸出迭代器(Output Iterator)


適配器:
      適配器就是Interface(接口),對容器、迭代器和算法進行包裝,但 其實質仍是容器、迭代器和算法,只是不依賴於具體的標準容器、迭代器和算法類型, 容器適配器 能夠理解爲容器的模板迭代器適配器 可理解爲迭代器的模板算法適配器 可理解爲算法的模板。
常見的容器適配器有:
stack、queue、 priority_queue
(不支持迭代器訪問)


算法:
     STL包含了不少對 容器進行處理的 函數,它們的處理思路大致相同:使用 迭代器來標識要處理的數據或數據段、以及結果的存放位置,有的函數還做爲對象參數傳遞給另外一個函數,實現數據的處理。
相關文章
相關標籤/搜索