设为首页 加入收藏

TOP

C++ STL容器类vector,list和deque的比较(二)
2017-06-27 10:22:35 】 浏览:428
Tags:STL 容器 vector list deque 比较
/A
N/A 10.2 0.0128 0.00547 vector对前端操作很苦手啊
前端移除 N/A N/A 10.3 0.0297 0.00135 同上
中间插入 N/A N/A 195 187 764 看似万能的deque的最大弱点,因为复杂的结构导致中间数据操作带来的复杂性大大增加,体现在操作时间是其他两个的几倍
中间移除 N/A N/A 195 209 753 同上
反初始化 0.00139 0.00290 0.0000106 0.693 0.305 vector貌似是直接抛弃内存的,其他两个就没那么简单了

5. 性能总结与使用建议

测试项目 静态数组 动态数组 vector list deque
初始化 ★★★★★ ★★★★★ ★★★★☆ ★★★☆☆ ★★★★☆
前向遍历 ★★★★★ ★★★★★ ★★★★☆ ★★★★☆ ★★★★☆
后向遍历 ★★★★★ ★★★★★ ★★★★☆ ★★★★☆ ★★★★☆
随机访问 ★★★★★ ★★★★★ ★★★★☆ ★☆☆☆☆ ★★★☆☆
后端插入 N/A N/A ★★★★★ ★★★★☆ ★★★★★
后端移除 N/A N/A ★★★★★ ★★★★☆ ★★★★★
前端插入 N/A N/A ★★☆☆☆ ★★★★☆ ★★★★★
前端移除 N/A N/A ★★☆☆☆ ★★★★☆ ★★★★★
中间插入 N/A N/A ★★☆☆☆ ★★☆☆☆ ★☆☆☆☆
中间移除 N/A N/A ★★☆☆☆ ★★☆☆☆ ★☆☆☆☆
反初始化 ★★★★★ ★★★★★ ★★★★★ ★★★★☆ ★★★★☆

一些使用上的建议:

Level 1 - 仅仅作为Map使用:采用静态数组 Level 2 - 保存定长数据,使用时也是全部遍历:采用动态数组(长度一开始就固定的话静态数组也行) Level 3 - 保存不定长数组,需要动态增加的能力,侧重于寻找数据的速度:采用vector Level 3 - 保存不定长数组,需要动态增加的能力,侧重于增加删除数据的速度:采用list Level 4 - 对数据有复杂操作,即需要前后增删数据的能力,又要良好的数据访问速度:采用deque Level 5 - 对数据中间的增删操作比较多:采用list,建议在排序的基础上,批量进行增删可以对运行效率提供最大的保证 Level 6 - 上述中找不到适合的:组合STL容器或者自己建立特殊的数据结构来实现

6. 测试程序清单

main.cpp

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++复习 下一篇C++断点异常

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目