【转】STL 容器类内部实现
2010-09-27 11:14
337 查看
overview
各种容器插入删除时间复杂度
vector
1.实际上由一个连续的内存块组成。
2.内存在多个内存块中扩展。
3.当vector中object被销毁的时候,内存被释放。
4.在插入对象多发生在尾部时,用vector比较合适
5.当内存块不够用的时候,会导致整个vector中的object重新拷贝。
deque
1。deque 由多个固定大小的内存块组成,并有一个map的 block去维护它。
2。当插入常发生在头部或者尾部的时候用它比较合适.
3。当应用operator[]操作时,是非常缓慢的。
list
1.由一些双向链表组成的内存块
2.对象构造是在一个同一个类型的static private pool中
3.在这个类所有成员释放之前,内存是不会被释放的。
4.没有operator[]操作符
5.内存使用率不高
6.任何地方插入都可以
stack 一般都用 vector,queue一般用deque或者list,priority_queue一般用vector或者用deque(在大小长变化的时候)
各种容器插入删除时间复杂度
vector
1.实际上由一个连续的内存块组成。
2.内存在多个内存块中扩展。
3.当vector中object被销毁的时候,内存被释放。
4.在插入对象多发生在尾部时,用vector比较合适
5.当内存块不够用的时候,会导致整个vector中的object重新拷贝。
deque
1。deque 由多个固定大小的内存块组成,并有一个map的 block去维护它。
2。当插入常发生在头部或者尾部的时候用它比较合适.
3。当应用operator[]操作时,是非常缓慢的。
list
1.由一些双向链表组成的内存块
2.对象构造是在一个同一个类型的static private pool中
3.在这个类所有成员释放之前,内存是不会被释放的。
4.没有operator[]操作符
5.内存使用率不高
6.任何地方插入都可以
stack 一般都用 vector,queue一般用deque或者list,priority_queue一般用vector或者用deque(在大小长变化的时候)
相关文章推荐
- STL中 vector map 等容器的内部实现 以及其 迭代器失效场景【2013.10.22】
- C++ STL 容器 deque 内部实现原理
- C++ STL 容器 deque 内部实现原理
- STL常用容器内部实现
- C++ STL容器deque内部实现原理
- C++ STL容器deque内部实现原理
- 动手实现自己的 STL 容器 《1》---- vector
- 使用C++STL的map容器实现一种命令映射
- 自定义String类,并且实现在STL容器中添加自定义的类型
- STL内部实现总结
- STL容器的实现原理
- 实现自己的C++ STL--vector容器
- stl容器区别: vector list deque set map-底层实现
- c++ STL 容器底层实现
- [置顶] 从零开始学C++之STL(二):实现简单容器模板类Vec(vector capacity 增长问题、allocator 内存分配器)
- stl容器区别: vector list deque set map-底层实现
- STL中各个容器的实现基本原理以及互相依赖
- stl容器的区别:vector list deque set map-底层实现
- stl容器区别: vector list deque set map及底层实现
- 使用reverse_iterator迭代器实现STL容器的反向遍历