Boolan STL與泛型程式設計 第一周筆記

2021-08-06 06:28:47 字數 1357 閱讀 5619

泛型程式設計

一)我們的目標:

level 0:使用c++標準庫

level1:認識c++標準庫(胸中自由丘壑)

level2:良好使用c++標準庫

level3:擴充c++標準庫

c++ standard library vs. standard template library (stl)

前者包含後者

c++標準庫的header files 不帶.h

新式 c headerfiles 不帶 .h

舊式c headerfiles 帶有 .h

重要的網頁和書籍

www.cplusplus.com

cppreference.com

gcc.gnu.org

the c++ standard library

stl原始碼剖析

二)stl六大部件:

容器 containers,存放資料

分配器 allocators 支援容器進行分配記憶體,不寫就有預設值

演算法 algorithms 資料操作方法

迭代器 iterators 泛化的指標

介面卡 adapters 包括容器介面卡、迭代器介面卡、仿函式介面卡

仿函式 functors

其關係如下:

範圍for 可以遍歷容器中所有元素。當需要通過範圍for改變容器元素內容的時候可以定義乙個引用來實現

for (auto& i: vec)

i+=i+3;

容器——結構與分類

分類:sequence containers 和 associative containers

sequence containers:

array:封閉式,固定空間

vector:前封閉,後面可以擴充

deque:雙向佇列,前後都可以擴充

set中key就是value,二者合一

map 中key和value 單獨存放

set和map存放東西必須獨一無二,沒有重複,

multiset和multimap中可以存放重複內容

Boolan STL與泛型程式設計 第四周筆記

stl六大部件從語言層面講 algorithms看不見containers,對其一無所知 所以它需要的一切資訊都必須從iterators取得,而iterators 由containers 必須能夠回答algorithm的所有提問,才能搭配該algorithm的所有操作。一般stl中的演算法都是以下兩...

模板與泛型程式設計

模板是泛型變成的基礎。泛型程式設計 編譯與型別無關的 是一種復用的方式,模板分為模板函式和模板類。模板函式是乙個通用的函式模板,而不是為每一種型別定義乙個新函式,乙個函式模板就像乙個公式,針對不同型別函式生成不同的函式版本。關鍵字 template 以 template 開始,後面跟乙個模板引數列表...

模板與泛型程式設計

泛型程式設計 編寫與型別無關的通用 是 復用的一種手段。模板是泛型程式設計的基礎。函式模板代表了乙個函式家族,該函式模板與型別無關,在使用時被引數化,根據實參型別產生函式的特定型別版本。模板的格式 template 返回值型別 函式名 引數列表 模板分為類模板和函式模板 模板它本身並不是函式,是編譯...