第七章 类模板及向量.ppt

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 类模板与向量 C++程序设计 本章主要内容 类模板 向量与泛型算法 * 类模板 类与函数一样,当多个类之间只是数据类型不一样时,也可以通过模板的形式定义成一个特定的模板类。 该类为需要不同的数据类型的类提供了统一的模板,即类模板。 类模板声明格式如下: template 类模板参数class 类名{……….} 模板参数可用作数据成员的类型、成员函数的参数类型、成员函数的返回值类型等 template class T class Test{ T x, y; public: Test(T a,T b) { x=a; y=b; } T getx(){return x;} T gety(){return y;} }; * 类模板 类模板的对象 创建对象时,显示的指定其数据类型,编译器就用指定的数据类型替代模板参数产生相应的模板类 格式如下: 类名模板实例化参数类型对象名(构造函数实参列表); Testint test1(15,30); 在类体外面定义成员函数时,必须重写类模板声明 template 模板参数 返回类型 类名模板类型参数::成员函数名(参数列表){……..} 参照P148【例7.2】 类模板也可以像普通类一样继承,继承的方法也一样。 继承的基类与派生类既可以是模板类,也可以是普通类。 模板类继承普通类 参照P149【例7.4】 模板类继承模板类 参照P150【例7.5】 * 向量与泛型算法 向量:数组的大小是不能改变的,而向量中存储的元素多少可以在运行时根据需要动态的增长或缩小,向量是类模板 向量类模板定义在头文件vector中,提供了4种构造函数 1.vectortype name; 定义空的向量表 vectorchar A; 2. vectortype name(length); 定义具有length个type的向量,初始化为0 vectorint B(20); 3. vectortype name(length,a); 定义具有length个type的向量,初始化为a vectorint C(20,1); 4. vectortype name1(name); 使用已定义的向量name构造新的向量name1 vectorint D(C); * 向量与泛型算法 向量的第一个元素从0开始 允许同类型的向量之间相互赋值,跟他们的长度无关 不能直接使用列表初始化向量,可先定义一个数组,再把数组的内容复制给向量 int a[3]={1,2,3}; vectorintb(a,a+3); 向量的数据类型可以是基本数据类型,也可以是构造类型,但必须符合构成规则 参考P154【例7.7】~【例7.8】 向量具有指向第一个元素的标记begin()和指向结束的标记end() 定义泛型指针 vectortype ::iterator 泛型指针名; 定义逆向泛型指针 reverse_vectortype ::reverse_iterator 指针名; 参考P153【例7.6】 * 向量的基本操作方法 访问向量容量信息的方法 1.size()返回当前向量中对象的个数 a.size(); 2.max_size()返回向量最多可以容纳多少个对象,取决于硬件结构 a.max_size(); 3.capacity()返回无需再次分配内存就能容纳的对象个数,初始值为最初申请的元素个数,当原来的空间存放满了之后,则在原来的基础上自动翻倍扩充 a.capacity(); 以上三者的关系如下: max_size() = capacity() = size() 4.empty()返回当前向量是否为空,若为空返回true值,即返回值为1,反之为0 a.empty(); 访问向量中对象的方法 1.front()返回向量中的第一个对象 a.front(); 2.back()返回向量中的最后一个对象 a.back(); 3.operator[ ](size_type n)返回向量中下标为n的向量元素 a.operator[ ](5); 参照P156【例7.9】 * 向量的基本操作方法 在向量中插入对象的方法 1.push_back(const T) 在向量尾部插入一个对象 a.push_back(‘w’); 2.insert(iterator it,const T)在it所指向的位置前插入一个对象 a.insert(3,’h’); 3.insert(iterator it,size_type n,cons

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档