设为首页 加入收藏

TOP

C++技术问题总结-第7篇 map、vector、list、deque各自的使用场合
2015-07-20 17:48:16 来源: 作者: 【 】 浏览:2
Tags:技术 问题 总结 7篇 map vector list deque 各自 使用 场合

map是关联式的,vector、list、deque是序列式的。

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


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

优点:

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

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

缺点:

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

? 只能在vector的最后进行push和pop。


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

优点:

? 方便插入和删除。

? 可在两端push、pop。

缺点:不能随机访问。


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

优点:

? 随机访问。

? 方便插入和删除。

? 可在两端push、pop。

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


使用场合总结:

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

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

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

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

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇LeetCode 44 Jump Game II 下一篇poj 3252 Round Numbers(数位dp)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何利用Python做数 (2025-12-24 23:48:36)
·如何使用python进行 (2025-12-24 23:48:34)
·python 爬虫入门该怎 (2025-12-24 23:48:31)
·Java 实现多个大文件 (2025-12-24 23:22:00)
·Java多线程编程在工 (2025-12-24 23:21:56)