STL - 各个容器的使用时机
2015-07-08 22:33
253 查看
deque的使用场景:比如排队购票系统,对排队者的存储可以采用deque,支持头端的快速移除,尾端的快速添加。如果采用vector,则头端移除时,会移动大量的数据,速度慢。
vector与deque的比较:
一:vector.at()比deque.at()效率高,比如vector.at(0)是固定的,deque的开始位置却是不固定的。
二:如果有大量释放操作的话,vector花的时间更少,这跟二者的内部实现有关。
三:deque支持头部的快速插入与快速移除,这是deque的优点。
list的使用场景:比如公交车乘客的存储,随时可能有乘客下车,支持频繁的不确实位置元素的移除插入。
set的使用场景:比如对手机游戏的个人得分记录的存储,存储要求从高分到低分的顺序排列。
map的使用场景:比如按ID号存储十万个用户,想要快速要通过ID查找对应的用户。二叉树的查找效率,这时就体现出来了。如果是vector容器,最坏的情况下可能要遍历完整个容器才能找到该用户。
相关文章推荐
- Project Euler:Problem 59 XOR decryption
- CF #308 (Div. 2)
- 在线实时生成Excel文件流供下载
- for循环语句之棋盘放粮食、百鸡百钱、纸张的折叠问题
- 6.1-1
- 关于hashCode方法的作用
- Linux内核驱动GPIO的使用
- 国嵌驱动专题一二
- Express框架常用API小解
- C++ 程序设计入门(下)- 第 7 单元 - 文件输入和输出
- leetcode刷题,总结,记录,备忘 75
- 3Sum 等类似题目分析
- Plus One
- Remove Duplicates from Sorted List II
- WinRT中如何快速获取Uri地址中的QueryString键值对信息
- 7.8
- 《番茄工作法图解》第三章读书笔记
- Android入门(37)——第十四章 使用SeekBar制作可拖动的进度条
- Xamarin.Android开发实践(十四)
- Rotate Image