Vector操作.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Vector操作

VectorVector 是同一类型的集合。每个对象都有一个对应的整数索引值。我们把vector称为容器,是因为它可以包含其他对象。vector 不是数据类型,只是模板,它可以定义多种数据类型。 Vector类型的每一种都指定了其他保存的元素的类型。Vector的定义和初始化几种初始化Vector对象的方式vectorTv1保存的类型为T,默认的构造函数,v1为空vectorTv2(v1)v2是v1的副本vectorTv3(n,i)v3包含n个i元素vectorTv4(n)v4 含有值初始化的元素N个副本注意:创建非空的vector对象,必须给出初始化的值。当把一个vector对象复制到另外一个vector对象时候,新复制的对象每个元素都初始化为原vector相应的元素副本。但是这两个vector的对象类型一定要一样。Vector值初始化如果没有指定元素的初始化,那么标准库将自行的提供一个元素的初始化值进行值的初始化,这个有库生产的初始化值用来初始化容器的每个元素。具体的值为何,取决于存储在vector中的元素类型。问题,下列哪些vector定义不正确。vectorvectorint ivec;vectorstringsvec = ivec;vectorstringsvec(10,”null”);下列的元素各是多少个,各个元素的值又是多少?vectorint ivec1;vectorintivec2(10);vectorintivec3(10,42);vectorstringsvec1;vectorstringsvec2(10);vectorstringsvec3(10,”hello”);vector对象的操作vector操作v.empty()如果v为空,返回true,否则,falsev.size()返回v中元素的个数v.push_back(t)在v末尾增加一个t元素v[n]返回v中位置为n的元素v1= v2把v1的元素替换为v2中的元素副本v1==v2如果v1==v2则返回true!=, , =,,=保持这些操作符的惯有含义Vector的size.size()操作返回的值不是整数类型(int ,long,char).是之固有的类型.成员函数size返回相应vector类定义的size_type的值。注意,使用size_type类型时候,必须制定该类型在哪里定义的。vectorint::size_type;vector::size_type;向vector添加元素push_back(),操作接受一个元素值,并将它作为一个心的元素添加到vector对象的后面。Vector的下标操作vector中的对象是没有命名的,可以按vector对象的位置来访问他们。通常来使用下标来获取元素。元素的位置是从0开始。vectorint ivec;ivec[0] = 42;注意,下标操作仅能提取确实已经存在的元素。列出三种vector对象的方法,给定10个元素,每个元素都为42,并指出是否还有更好的实现方法?迭代器简介迭代器是一种检查容器内元素并遍历元素的数据类型。所有的标准库容器都定义了相应的迭代器类型,而只有少数的容器支持下标操作。vectorint::interator iter;bigin和end操作每种容器都定义了一对命名为begin和end的函数,用于返回迭代器,如果容器中有元素的话,由begin返回的迭代器指向第一个元素。vectorint :: interator iter = ivec.begin();由end操作返回的迭代器指向vector的“末端元素的下一个”。通常称为 超出末端迭代器,表明它指向了一个不存在的元素,如果vector为空,begin返回的迭代器与end返回的迭代器是相同的。由于end操作返回的迭代器并不指向vector中的任何实际的元素,相反,它只是起一个哨兵的作用,表示我们已经处理完vector中的所有元素。vector迭代器的自增和解引用运算迭代器类型可以使用 解引用操作符来访问迭代器所指向的元素。*iter = 0;假设,iter指向vector对象的ievc的第一个元素,那么*iter和ievc[0]就事指向的同一个元素。迭代器使用自增操作符,向前移动迭代器指向容器的下一个元素,从逻辑上说,迭代器的自增作用和int类型对象自增操作类似。对于int类型对象来说,操作结果就事把int类型的值“加1”,而对迭代器对象则是把容器的迭代器“向前移动一个位置”,因此,如果迭代器iter指向第一个元素,则++iter指向第二个元素。迭代器的其他操作另一对可执行于迭代器的操作就事比较,用 == 或 != 来比较两个迭代器,如果两个迭代器对象指向同一个元素,则他们相等,否则他们不相等。for(vectorint::it

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档