C++ STL序列式容器优缺点记录
2015-07-19 15:48
267 查看
STL中有三种序列式容器vector,list,deque。对其分别进行性能介绍
vector:
vector内部是通过连续的动态内存空间(dynamic array)去管理的,每push_back一个元素,将安插到array尾部。
这种通过连续的内存空间去管理的方式,可以方便我们去通过下标索引到值,在其尾部的插入和删除效率都非常之高。
当在vector内部去进行插入和删除则会导致vector容器元素去移动位置,因此效能较差
deque:
deque是一个双端队列,可在首尾进行元素的插入和删除。当在首尾删除时效率较高,在中间位置则会导致移动位置,效率较差
list:
双端链表,插入和删除只需移动内部指针位置,因此非常快,查找的话需要依次去遍历前一个元素,效能较差
vector:
vector内部是通过连续的动态内存空间(dynamic array)去管理的,每push_back一个元素,将安插到array尾部。
这种通过连续的内存空间去管理的方式,可以方便我们去通过下标索引到值,在其尾部的插入和删除效率都非常之高。
当在vector内部去进行插入和删除则会导致vector容器元素去移动位置,因此效能较差
deque:
deque是一个双端队列,可在首尾进行元素的插入和删除。当在首尾删除时效率较高,在中间位置则会导致移动位置,效率较差
list:
双端链表,插入和删除只需移动内部指针位置,因此非常快,查找的话需要依次去遍历前一个元素,效能较差
相关文章推荐
- C/C++位域知识小结
- C语言柔性数组
- C++之priority_queue
- C++之priority_queue
- C语言柔性数组
- C/C++程序设计07(STL容器和泛型算法)
- C++中的unique(),unique_copy()的用法
- C++学习笔记-1-自增和自减运算符
- C++ 不用临时变量交换两个变量的值——函数对象
- 详解c++指针的指针和指针的引用
- C++std命名空间详解
- [C++ primer]优化内存分配
- 解决Eclipse中C++代码显示Symbol 'std' could not be resolved的问题
- 链表源代码(C语言实现)
- 链表源代码(C语言实现)
- NYOJ 113 字符串替换(C++STL解法)
- C++笔记
- 指针数组与二维数组的应用
- C++学习杂笔(总)
- C++学习笔记36 (模板的细节明确template specialization)和显式实例(template instantiation)