第四讲Vector.ppt

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

vectors的构造函数和析构函数 vectors的非变动性操作 vectors的赋值操作 vectors的存取元素操作 swap函数的使用 两个数交换 swap函数的使用 void swap(vector_Tp, _Alloc __x) { __STD::swap(_M_start, __x._M_start); __STD::swap(_M_finish, __x._M_finish); __STD::swap(_M_end_of_storage, __x._M_end_of_storage); } swap函数的使用 缩小内存 释放空间 vectorint v1(10,1); vectorint v2(100,2); coutv1[0]endl; coutv2[0]endl; v1.swap(v2); coutv1[0]endl; coutv2[0]endl; vectorint nums; nums.push_back(1);nums.push_back(1);nums.push_back(2);nums.push_back(2); vectorint().swap(nums); //或者nums.swap(vectorint()); 引言 迭代器 迭代器是个所谓的复杂的指针,具有遍历复杂数据结构的能力。其下层运行机制取决于其所遍历的数据结构。 每一种容器型别都必须提供自己的迭代器。 vectors的迭代器操作 vectors的安插、移除操作 操作 功能 c.begin() 返回一个随机存取迭代器,指向第一个元素 c.end() 返回一个随机存取迭代器,指向最后一个元素 c.rbegin() 返回一个逆向迭代器,指向迭代器第一个元素 c.rend 返回一个逆向迭代器,指向迭代器最后一个元素 *****对于调用者来说,最重要的事情莫过于搞清楚这些操作是否进行范围检查。 向量对象的数据操作 #include iostream #include vector using namespace std; int main( ){ int i; vectorint c(8); c.assign(4,9); c.push_back(10); for(i=0;ic.size();i++) coutc.at(i)endl; cout*c.begin(),*(c.end()-1)endl; return true; } 操作 功能 c.push_back(elem) 在尾部添加1个元素elem副本 c.pop_back( ) 移除最后一个元素,但不回传最后一个元素值 c.erase(pos) 移除pos位置上的元素,返回下一个元素的位置 c.resize(num.elem) 将元素数量改为num,多出来的元素用elem赋值 c.resize(num) 将元素数量改为num,多出来的元素用构造函数完成 c.clear() 移除所有元素,vector为空 * * 请注意每种定义的size和cap大小 * 关系运算还有 ; =;=,!= 1073741823=2^30-1 关系运算还有 ; =;=,!= C[i] * 调用[]时,你必须心里有数,确定索引有效。 C[i] * 迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。 调用[]时,你必须心里有数,确定索引有效。 assign和push函数都可起到赋值的作用,请注意他们应该在什么情况下使用。 关系运算还有 ; =;=,!= computerscience9@163.com key:wust123456 Vector向量 小结 内 容 C++库中向量的其它操作 向量的实现 向量的使用 3.6节 向量 请读代码 templateclass T class vect { T* data; int size; int cap; ……… } vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。 vector是动态数组,可由系统完成扩容操作。 #include vector

文档评论(0)

整理王 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档