码迷,mamicode.com
首页 > 编程语言 > 详细

C++技术问题总结-第7篇 map、vector、list、deque各自的使用场合

时间:2014-08-27 18:46:38      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:style   使用   ar   数据   问题   sp   on   c++   c   

    map是关联式的,vectorlistdeque是序列式的。

    map:底层机制RB-tree(红黑树),元素自动排序,键值对。


    vector:操作方式与array相似,动态空间增长。是连续性空间,支持随机访问。

    优点:

? 内存动态增长,不需要指定内存大小。

? 支持随机访问,即支持[]vector.at()

    缺点:

? 在内部进行插入删除操作效率低。

? 只能在vector的最后进行pushpop


    list:对空间的运用有绝对的精准,一点也不浪费。删除插入简单,但不支持随机访问。双向线性列表。

    优点:

? 方便插入和删除。

? 可在两端pushpop

    缺点:不能随机访问。


    deque:双向开口的连续性空间。头尾两端分别做元素的插入和删除。

    优点:

? 随机访问。

? 方便插入和删除。

? 可在两端pushpop

    缺点:内部实现复杂,效率较低。排序等不适用。


    使用场合总结:

? 需要高效的存取,不在于插入和删除效率,使用vector

? 需要大量插入和删除,不关心存取,使用list

? 关心存取,且两端数据进行插入和删除,使用deque

? 键值对,一对一映射,采用map

C++技术问题总结-第7篇 map、vector、list、deque各自的使用场合

标签:style   使用   ar   数据   问题   sp   on   c++   c   

原文地址:http://blog.csdn.net/segen_jaa/article/details/38873769

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!