overview

【转】STL 容器类内部实现

各种容器插入删除时间复杂度

【转】STL 容器类内部实现

vector

1.实际上由一个连续的内存块组成。

2.内存在多个内存块中扩展。

3.当vector中object被销毁的时候,内存被释放。

4.在插入对象多发生在尾部时,用vector比较合适

5.当内存块不够用的时候,会导致整个vector中的object重新拷贝。

【转】STL 容器类内部实现

deque

1。deque 由多个固定大小的内存块组成,并有一个map的 block去维护它。

2。当插入常发生在头部或者尾部的时候用它比较合适.

3。当应用operator[]操作时,是非常缓慢的。

【转】STL 容器类内部实现

list

1.由一些双向链表组成的内存块

【转】STL 容器类内部实现

2.对象构造是在一个同一个类型的static private pool中

【转】STL 容器类内部实现

3.在这个类所有成员释放之前,内存是不会被释放的。

4.没有operator[]操作符

5.内存使用率不高

6.任何地方插入都可以

stack 一般都用 vector,queue一般用deque或者list,priority_queue一般用vector或者用deque(在大小长变化的时候)

相关文章:

  • 2022-12-23
  • 2021-06-29
  • 2022-12-23
  • 2022-12-23
  • 2022-02-23
  • 2022-01-13
  • 2022-12-23
  • 2021-08-17
猜你喜欢
  • 2022-12-23
  • 2021-06-30
  • 2022-01-24
  • 2021-04-10
  • 2022-12-23
  • 2022-01-27
  • 2021-10-02
相关资源
相似解决方案