(7.9)--7.9 顺序容器之vector和deque面向对象程序设计.ppt

(7.9)--7.9 顺序容器之vector和deque面向对象程序设计.ppt

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

顺序容器之vector和deque在此输入您的封面副标题

STL顺序容器概述顺序容器有以下三种:可变长动态数组vector(向量容器)双端队列deque双向链表list它们之所以被称为顺序容器,是因为元素在容器中的位置同元素的值无关,即容器不是排序的。将元素插入容器时,指定在什么位置(尾部、头部或中间某处)插入,元素就会位于什么位置。容器都是类模板。它们实例化后就成为容器类。用容器类定义的对象称为容器对象。例如:vectordoublev;//vectorT是类模板,vectordouble是其实例化得到的类,v是vectordouble类的对象,其中所有元素都是double型的

顺序容器的成员函数intsize():返回容器对象中元素的个数。boolempty():判断容器对象是否为空。begin():返回指向容器中第一个元素的迭代器。end():返回指向容器中最后一个元素后面的位置的迭代器。rbegin():返回指向容器中最后一个元素的反向迭代器。rend():返回指向容器中第一个元素前面的位置的反向迭代器。erase(...):从容器中删除一个或几个元素。clear():从容器中删除所有元素。front():返回容器中第一个元素的引用。back():返回容器中最后一个元素的引用。push_back():在容器末尾增加新元素。pop_back():删除容器末尾的元素。insert(...):插入一个或多个元素。

vector头文件:vector可变长度的动态数组。元素在内存中连续存放。随机存取任何元素都能在常数时间内完成。在尾端增删元素具有较佳的时间性能(大部分情况下是在常数时间完成)。除尾端外的其余位置增删元素需要在O(n)时间内完成。可以像使用数组一样通过“[]”运算符引用向量中的元素,通过“=”运算符为向量设置元素值a1a2…aiai+1…ane插入完成v.size()nn+1v插入位置为第i个元素之前

vector举例#includeiostream#includevectorusingnamespacestd;templateclassTvoidPrintVector(constvectorTv){//用于输出vector容器的全部元素的函数模板typenamevectorT::const_iteratori;for(i=v.begin();i!=v.end();++i)cout*i;coutendl;}

intmain(){inta[5]={1,2,3,4,5};vectorintv(a,a+5);coutv.end()-v.begin()endl;PrintVector(v);v.insert(v.begin()+2,13);PrintVector(v);v.erase(v.begin()+2);PrintVector(v);vectorintv2(4,100);v2.insert(v2.begin(),v.begin()+1,v.begin()+3);PrintVector(v2);v.erase(v.begin()+1,v.begin()+3);PrintVector(v);return0;}程序运行结果:51234512133451234523100100100100145

dequedeque也是顺序容器的一种,是双端队列。要使用deque,需要包含头文件deque。所有适用于vector的操作都适用于deque。deque和vector有很多类似的地方。在deque中,随机存取任何元素都能在常数时间内完成(但慢于vector)。它相比于vector的优点是,vector在头部删除或添加元素的速度很慢,在尾部添加元素的性能较好,而deque在头尾增删元素都具有较好的性能(大多数情况下都能在常数时间内完成)。它有两种vector没有的成员函数:voidpush_front(constTval);//将val插入容器的头部voidpop_front();//删除容器头部的元素

#includeiostream#includeiterator#includedeque //包含双端

文档评论(0)

177****2883 + 关注
实名认证
内容提供者

热爱教育,专注于教育领域创作与分享,让我们共同进步。

1亿VIP精品文档

相关文档