下载此文档

STL容器分析.doc


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
STL容器分析
vector:
实现:vector采用一段连续的内存来存储其元素。容量不足时将自动重新分配内存,并将原数据拷入,再释放原内存。
优点:适用于随机访问和尾部插入,删除。可采用reserve()来预先分配内存,减少内存STL容器分析
vector:
实现:vector采用一段连续的内存来存储其元素。容量不足时将自动重新分配内存,并将原数据拷入,再释放原内存。
优点:适用于随机访问和尾部插入,删除。可采用reserve()来预先分配内存,减少内存分配时间消耗,以提高性能。
查找:对于查找,可排序后利用算法库的getlowerbound()进行有序插入,利用binary_search()对元素进行二分查找。可提高效率。
缺点:对于随机插入,删除,查找不适用。
常用函数:size,push_back,pop_back,swap,
at(等同下标访问),clear,back,begin,end,
reserve,empty。头文件#include<vector>
deque:(queue类似)
实现:deque采用多块内存串连起来的方式来存储元素。
优点:内存分配操作开销较小。对首部和尾部操作时开销很低。
缺点:无法操作中间数据,查找开销很大,无法下标访问。
常用函数: size,push,pop,swap,back,front ,
empty。头文件#include<queue>
list:
实现:双向链表,每个元素独立存储。
优点:理论上,任意位置插入、删除非常快。但大量内存操作,实际性能有所降低。
缺点:不适用于查找。
常用函数: size,push_back,pop_back,swap,
back ,insert,clear,sor。头文件#include<list>.
map、set:
实现:都采用平衡树(红黑树)实现其元素在内存中的存储。平衡二叉检索树使用中序遍历算法,检索效率高于vector、deque和list等容器。检索结果升序排列。
优点:元素值不重复,内部数据有序。理论上,较高效率实现插入、删除与查找。实际有内存操作影响,有所降低。
缺点:随机访问不便。
其他:构造主要为了方便快速检索。map以键值对(key-value)形式存储。元素或value均不重复。
常用函数:insert,erase,iterator,clear,find,size.
头文件#include<set>,#include<map>
multimap、multiset:
与map、set类似,唯一区别是插入数据可重复。头文件#include<set>,#include<map>.s
unordered_map、unordered_multimap:
实现:c++11引入的散列容器。散列容器具有不稳定性:他依赖于实际所使用的散列算法。而针对不同的元素数量,不同的散列算法具有相当大的性能差异。内部数据无序。

STL容器分析 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人260933426
  • 文件大小24 KB
  • 时间2022-01-29