Boolan STL 第三周笔记
各種類型container
- deque
deque是一種分段連續的容器,特點是雙向開口,使用起來可以認為它是一段連續的內存空間,不僅可以向前方增加內存空間,也可以向后方增加內存空間。
deque 模擬連續內存的實現方法:
可以看出,deque通過一個vector存放控制器,使用控制器來串聯一系列的緩沖器(buffer),從而達到邏輯上的連續效果。然后通過Iterator模擬,達到使用者使用連續的效果。
- insert操作
元素插入時若不在兩端,會影響其他元素順序,因此會先判斷離哪邊端點近,移動近的那部分元素。
- deque 繼承關系
容器queue&stack
queue其實就是只有deque的頭的push_front和尾的pop_back,即實現了先進先出后進后出。stack是先進后出。嚴格的來講,queue和stack更像是一個adapter。
注意:
queue和stack也可以選用其他容器作為底層容器,只要它們能提供頭和尾的push和pop操作。
RB-Tree
Red-Black tree(紅黑樹)是平衡二元搜索樹(balanced Binary search tree)中常被使用的一種。
平衡二元搜索樹的特征:排列規律,有利于search和insert,并保持適度平衡,無任何節點過深。
- 實現
繼承關系
set&multiset
map&multimap
hashtable
hashtable通過hash function 將元素值轉換為一個可進行modulus運算的值使得hash code經過運算之后能夠夠難夠亂夠隨機的分布在hash table上,越是混亂,越不容易發生hash碰撞。
- modules運算
unordered container
- unordered set
- unordered multiset
- unordered map
- unordered multimap
總結
以上是生活随笔為你收集整理的Boolan STL 第三周笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转]AIX平台下如何增加用户和组的名称
- 下一篇: javascript基础之判断变量类型