C++ STL概論

STL六大組件介紹

STL(Standard Template Library) 是一個組件集合,共包含以下六大組件,彼此可以組合套用:

  • 1、容器(containers):包含各種數據結構,如vector、list、deque、set、map,用來存放數據。從實現角度來看,STL容器是一種 class template
  • 2、算法(algorithms):包含各種常用的算法,如sort、search、copy、erase…從實現角度來看,STL算法是一種 function template
  • 3、迭代器(iterators):扮演容器與算法之間的膠合劑,是所謂的“泛型指針”。從實現來看,迭代器是一種將operator*、operator->、operator++、operator-- 等指針相關操作予以重載的 class template。所有STL容器都附帶有自己專屬的迭代器——是的,只有容器的設計者才知道如何遍歷自己的元素。原生指針(native pointer)也是一種迭代器。
  • 4、仿函數(functors):又稱爲 函數對象(function objects),行爲類似函數,可作爲算法的某種策略。從實現角度來看,仿函數是一種重載了operator()的 classclass template。一般函數指針可視爲狹義的仿函數。
  • 5、適配器(adapers):用來修飾容器或仿函數或迭代器接口。改變container接口的稱爲 container adapter;改變functor接口的稱爲 function adapter;改變Iterator接口的稱爲 iterator adapter。
  • 6、配置器(allocators):負責空間配置與管理。從實現角度來看,配置器是一個實現了動態空間配置、空間管理、空間釋放的 class template

六大組件間的關係

STL六大組件的交互關係:Container通過Allocator取得數據存儲空間,Algorithm通過Iterator存取Container內容,Functor可以協助Algorithm完成不同的策略變化,Adapter可以修飾或套接Functor

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章