容器是用來儲存資料的,資料可以試使用者自定義的類,也可以試預定義的型別。c++中的容器主要使用有array、vector、list、set、map等。
stl中的容器裡都有分配器,在宣告乙個容器的模板第二個引數就是分配器。分配器是用來給容器分配記憶體的,在一般情況下,使用預設的分配器即可。
在stl中要實現容器中資料的操作如排序、查詢等,都需要相應的演算法來實現。標準庫中定義了許多例如stable sort find for each等高效的演算法
迭代器在stl中用來將演算法和容器聯絡起來,起著一種膠著劑的作用。迭代器是一種檢查容器內元素並遍歷元素的資料型別。迭代器是一種行為類似指標的物件,它提供類似指標的功能,對容器的內容進行走訪。
分配器是用來變換物件的。在stl中有容器分配器、迭代器分配器、仿函式分配器,具體使用時可以物件進行相應的轉換。
就是使乙個類的使用看上去象乙個函式。其實現就是類中實現乙個operator(),這個類就有了類似函式的行為。
它們之間關係:
容器為前閉後開區間,其中迭代器begin()指向容器第乙個元素,end()指向容器尾後元素的後面。
vector 可變大小陣列 支援快速隨機訪問 每次擴容增加一倍
array 固定大小陣列 支援快速隨機訪問 不能新增或者刪除元素
list 雙向鍊錶 只只支援雙向順序訪問
forward_list單向鍊錶 只支援單向順序訪問
deque 雙端佇列 支援快速隨機訪問
set 關鍵字即值
map 關聯陣列 儲存關鍵字-值對
multimap 關鍵字可重複出現map
multiset 關鍵字可重複出現的set
unordered_map使用hash函式組織的map
unordered_set使用hash函式組織的set
unordered_multimap使用hash函式組織的map關鍵字可重複
unordered_multiset使用hash函式組織的set關鍵字可重複
Boolan STL與泛型程式設計 第一周筆記
泛型程式設計 一 我們的目標 level 0 使用c 標準庫 level1 認識c 標準庫 胸中自由丘壑 level2 良好使用c 標準庫 level3 擴充c 標準庫 c standard library vs.standard template library stl 前者包含後者 c 標準庫的...
Boolan C 課程第一周筆記
第一周 20170407 類 帶指標 1 不帶指標 object based 基於物件 單一物件 object oriented 物件導向 多個有關聯的物件 語言學習 語言 標準庫 標頭檔案寫法 防衛式宣告 ifndef complex define complex 前置宣告 類的宣告 類的定義 e...
Boolan c 學習第一周筆記
1.一種基於物件 object based 這種是單一的類的設計 一種物件導向 object oriented 多重class的設計 對於類中的變數和函式而言,資料有很多份但是函式只有乙份。2.標頭檔案的正規寫法 ifndef 頭檔名 define 頭檔名 endif 採用了防衛式宣告。3.c 中的...