1.stl六大元件
(1)容器:各種資料結構,如vector,list,deque,set,map,用來存放資料,從實現的角度看,stl容器是一種class template。
(2)演算法:各種常用的演算法如sort,search,copy,erase...,從實現的角度看,stl演算法是一種function template。
(3)迭代器:扮演容器和演算法之間的膠合劑,是所謂的泛型指標,從實現角度看,迭代器是一種將operator*,oprator->,operator++,operator--等指標相關操作予以過載的class template。原生指標也是一種迭代器。
(4)仿函式:行為類似函式,可作為演算法的某種策略,從實現的角度看,仿函式是一種過載了operator()的class或class template,一般函式指標可視為狹義的仿函式。
(5)配接器(介面卡):一種用來修飾容器或仿函式或迭代器介面的東西。例如stl提供的queue和stack,看似容器,實一種容器介面卡,因為他們的底部完全借助deque,所有操作都由底層的deque**。
(6)配置器:負責空間配置和管理,從實現的角度看,配置器是乙個實現了動態空間配置、空間管理、空間釋放的class template。
六大元件的互動關係:container(容器)通過allocatior(空間配置器)取得資料儲存空間,algorithm(演算法)通過iterator(迭代器)訪問container內容,functor(仿函式)可以協助algorithm完成不同的策略變化,adapter(介面卡、配接器)可以修飾或套接functor。
STL學習筆記
容器是用來存放資料的,掌握容器特性才能更好地選擇合適的容器載資料。這裡要記住,可自主選擇插入的位置 vectors 可隨機訪問,可變長陣列,可快速在尾部插入刪除,不適合在中部頭部頻繁插入刪除 deques 可隨機訪問,佇列,先進先出,可快速在頭部尾部插入刪除,同樣不適合在中部插入刪除元素 list ...
STL 學習筆記 default alloc
下面是沒有加上多執行緒安全的default alloc template模板類以及實現 o 本人比較懶,自己寫的注釋都寫在書上了,覺得自己敲出來理解的更加透徹些。template class default alloc template enum enum union obj static obj ...
STL學習筆記 01
1.容器 containers 各種資料結構 2.演算法 algorithms 各種常用演算法 3.迭代器 iterators 容器和演算法之間的膠合劑 4.仿函式 functors 行為類似函式,可作為演算法的某種策略 5.配接器 adapters 一種用來修飾容器或仿函式或迭代器介面的東西 6....