各种类型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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。