您的位置:首页 > 编程语言 > C语言/C++

关于c++顺序容器小结(一)---概述

2015-11-09 17:24 288 查看
最近又再啃c++11primer,不停一遍又一遍啃也不是办法,就总结一下。

什么是顺序容器:所谓容器就一些特定数据类型对象的集合,就像家里装东西的箱子一样吧它们装在一起便于管理。而顺序容器就是提供控制元素的存储和访问顺序,通俗的说就是可以按照顺序把东西放到箱子里,而取的时候也可以按照顺序去拿。

顺序容器的种类: vector(可变数组),deque(双端队列支持[]运算符),list(双向链表不支持[]运算符),forward_list(单向链表不支持[]运算符),string(保存字符的可变数组支持[]运算符),array(固定大小数组支持[]运算符)。他们都定义在自己的头文件中。

基本特性:

vector:支持[]运算符,在尾部之外的位置插入删除操作效率低;

deque:支持[]运算符,在头尾位置操作都很快;

list:不支持[]运算符,在任意位置操作都快;

forward_list:只支持单项顺序访问,在任意位置操作都快;

array:支持[]运算符,不能添加火删除元素;

string:支持[]运算符,在尾部操作快;

选择容器的基本原则:

*一般用vector,除非有特殊用意;

*如果元素很小,且额外开销很重要,则不用list火forward_list;

*需要随机访问就用vector或deque;

*如果要在容器中间插入或删除应使用list或forward_list;

*如果只在容器头尾添加或删除应用deque;

*如果只有在读取输入时才需要在容器中间插入元素,随后需要随机访问元素,现在vector中添加然后调用sort函数从而避免在中间位置添加元素;如果 必须在中间插入则可先输入到list中然后在拷贝到vector中;

总之,容器的选择视程序的操作而定,占主导的操作决定了容器的选择;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: