泛型程式設計
一)我們的目標:
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 返回值型別 函式名 引數列表 模板分為類模板和函式模板 模板它本身並不是函式,是編譯...