所有STL容器都提供了一些相同的操作方法,比如:
size() 返回容器中元素个数
empty() 容器是否为空
c1 == c2 比较二个容器中所有元素是否相同
c1 != c2 比较二个容器中是否有不相同的元素
c1 = c2 把另一个容器c2中所有元素赋值给容器c1
1.比如存储游戏得分,而得分需要进行排序,那具备自动排序功能的就set和map,
但是我们又不需查找,那此时set就符合我们的需求
2.比如存储学生考试成绩,而学生考试成绩有个ID号,以及学生信息,学生考试成绩需要根据分数进行自动排序,
并且需要根据学生ID号查询学生信息,此时满足自动排序并且能根据指定Key(学生ID号)查询到学生信息的容器只有map..
3.比如排队购票系统,前面的人走了需要移除容器中的头部元素,而后面的人来了需要从尾部插入元素。不需要自动排序及快速查找,
此时适合的就剩下vector和deque以及list, 而vector移除头部元素虽然可以,但是需要移动大量的数据,效率低。
同样的list也可以,而我们仅仅需要的是头部和尾部快速插入删除, 并不需要改变容器中其它元素,以够用原则来衡量,deque最适合.
4.比如公交车乘客系统,随时有乘客要下车需要从容器任意位置进行删除,同样不需要自动排序和查询,此时适合的就剩下vector和deque以及list。
vector适合尾部快速插入删除,而deque适合头部和尾部快速插入删除,任意位置插入删除最合适的只有list
5. 比如存储日志,不需要自动排序也不需要查询,有新日志时插入容器尾部,不需要从头部或者任意位置插入,需要快速的清空容器中所有元素,
此时vector是最合适的选择
原文:https://www.cnblogs.com/fzxiaoyi/p/12092539.html