STL庫

近容器:char buff[1024] string bitset(操縱位)
這裏寫圖片描述
Vector自定義類型實例化 ——- T()僞構造
Vector內置類型實例化 ——– 0
這裏寫圖片描述
Vector和deque區別:
搜索和中間插入時用vector
在頭部插入用deque,vector成倍增長,可能會造成空間浪費。
Vector只有push_back ()和 pop_back()而deque還有push_front()和Pop_front()
容器
這裏寫圖片描述

集合(set)和映射(map)的底層都是一個平衡的二叉樹,插入後自動排序
集合:單重集合set,多重集合 multiset
集合中的鍵和值是等價的
映射:一對一映射:map, 一對多集合 multimap
鍵和值是對應的,多重集合中可以有多個重複的鍵值
映射中由於鍵和值是分開的,便於存儲在樹的節點中,將其打包爲一個數據結構pair<first ,second>
在集合和映射中:成員方法效率比全局方法快。
STL庫中沒有修改元素這一函數方法,若要實現修改,可進行插入刪除來間接完成,因爲修改元素會打破紅黑樹的平衡。
如果集合中的元素是自定義的類型,那就要自己實現排序
STL庫中的val_type,是對模板參數類型的typedef重新定義
map在調用[ ]中括號運算符重載的時候,由於只知道key,而不知道對應的值,因此會使用默認構造函數返回對象,所以要給value的類實現一個默認的構造函數。

容器適配器的實質是對標準容器的封裝。(源代碼見標準庫)
Stack 底層調用的是 deque
Queue 底層調用的是 deque
Priority_Queue 底層調用的是 vector

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