生病臥床中……OTL
deque&queue 和 stack 深度探索上
容器 deque
容器 deque
分段串接
deque的iterator
deque的iterator
map 實際是一個 vector,里面是指針
iterator 里面四部分 cur、first、last、node
first 和 last 是每一段里的首尾
deque<T>::insert()
deque<T>::insert()
deque 如何模擬連續空間
模擬連續空間
容器 queue
容器 queue
容器 Stack
容器 Stack
queue和stack,關于其iterator和底層結構
queue和stack,關于其iterator和底層結構
- queue和stack都可以選擇list或deque作為底層結構。
- queue不能選擇vector作為底層結構,而stack可以。
- queue和stack都不能選擇set或map作為底層結構
容器 rb_tree
Red-Black tree(紅黑樹)是平衡二元搜索樹(balanced binary search tree)中常被使用的一種。平衡二元搜索樹的特征是:排列規則有利search和insert,并保持平衡——無任何節點過深。
rb_tree提供“遍歷”操作及iterators。按正常規則(++ite)遍歷,便能獲得排序狀態(sorted)。
我們不應使用rb_tree的iterators改變元素值(因為元素有其嚴謹排列規則)。編程層面(programming level)并未阻絕此事。如此設計是正確的,因為rb_tree即將為set和map服務(作為其底部支持),而map允許元素的data被改變,只有元素的key才是不可被改變的。
rb_tree提供兩種insertion操作:insert_unique()
和insert_equal()
。前者表示節點的key一定在整個tree中獨一無二,否則插入失?。缓笳弑硎竟濣c的key可以重復。
容器 rb_tree
容器 _Rb_tree
容器 _Rb_tree
handle and body
手法和本體分開
容器set,multiset
容器set,multiset
容器set
set的所有操作,都轉呼叫底層t的操作。從這層意義看,set未嘗不是個container adapter。
容器map,multimap
容器map,multimap
容器map
容器map,獨特的operator[]
容器map,獨特的operator[]
容器 hashtable
容器 hashtable
Separate Chaining
分開-串聯
鏈表太長要打散,bucket籃子過長
元素個數比籃子個數還多,就要打散
打散的方式就是把籃子增加兩倍
iterator
hash_function,hash-code
hashcode值要夠亂才好
一開始就可以設置籃子大小
unordered 容器
unordered容器