- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
初级c,,,编写一个使用类模板对数组进行排序,查找并求元素和的程序
初级c,,,编写一个使用类模板对数组进行排序,查找并求元素和的程序
篇一:第七章作业内容(修改后带部分答案)
一. 选择题
1. 下列关于类模板中模板参数的叙述中,错误的是(D)
A.模板参数可以作为数据成员的类型
B.模板参数可以作为成员函数的返回类型
C.模板参数可以作为成员函数的参数类型
D.模板参数不能作为成员函数的局部变量类型
2. 假设定义如下函数模板:
templatelt;class T
T max(T x,T y)
{return(xy)?x:y;}
并定义了int i=3;char c=?a?;语句,正确的调用语句是:(D)
A.max(“li”, ”Zhang”);
B. max(int(i), c);
C. max(i, c);
D. maxlt;int(c, i);
3. 下列程序段中有错的是(B)
template lt;class type1, typename type2 //A
int i;// B
myfunc(type1 x,type2 y)//C
{ coutlt;lt;xlt;lt; lt;lt;ylt;lt;endl;}//D
4.下列关于类模板的说法中,正确的是(B)
A. 在类模板外定义成员函数时,其成员函数和普通类成员函数的定义是一样的
B. 在类模板外定义成员函数时,其成员函数前面必须包含模板参数的声明
C. 类模板只能声明一个参数
D. 类模板和函数模板一样,它的参数不可以具有默认值
5.(选作题)下列不是顺序容器的是(D)
A. vectorB. listC .deque D. map
6.(选作题)有如下定义:int ia[7]={0,1,1,2,3,5,8};,下面(D)是错误的
A. vectorlt;vectorlt;intivec;
B. vectorlt;intivec={0,1,1,2,3,5,8};
C. vectorlt;intivec(ia,ia+7);
D. vectorlt;stringsvec=ivec;
7.一个(C )允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的返回值能去任意类型。
A.函数模板B.模板函数C. 类模板D.模板类
二. 问答题
1.简述函数模板与模板函数、类模板与模板类的区别。
答:函数模板就是实现数据类型参数化的函数定义,得到一个函数族。当函数中的数据成员、函数的返回值类型需要用未知类型进行抽象时,就需要定义函数模板,而模板函数是指在函数模板中需要使用函数时,用实际数据类型对类型参数自动实例化得到;函数模板是模板的定义,定义中用到通用类型参数,它代表的是一类函数。而模板函数是实实在在的函数定义,它在编译系统遇到具体的函数调用时生成并具有代码,用来表示某一个具体函数。
类模板如同函数模板一样,就是实现数据类型参数化的类定义,得到一个类族。在需要定义对象时,首先显式地将类模板中的类型参数实例化得到一个具体的类,这就是模板类。类模
板与模板类之间是抽象与具体的关系,类模板是诸多拥有相同数据成员和成员函数的类在类型上加以抽象得到的类族,而模板类是类模板中的类型参数实例化以后得到的一个具体的类。
2.(选作题)数组和向量的主要区别是什么?
答:(1)声明方式不同。(2)向量可以使用赋值运算符、比较运算符。(3)可以用size()来测试向量中的元素个数。(4)向量可以用at()进行有效索引测试,无合法元素则抛出异常。
3.(选作题)关联容器有哪四种?简单介绍它们是怎样组成的?各有什么特点?
答:四个关联容器为:集合(set),多重集合(multiset),映射(map)和多重映射(multimap)。
集合和多重集合类提供了控制数值集合的操作,其中数值是关键字,即不必另有一组值与每个关键字相关联。集合与多重集合类的主要差别在于多重集合允许重复的关键字(key),而集合不允许重复的关键字。集合和多重集合通常实现为红黑二叉排序树。元素的顺序由比较器函数对象(comparator function object)确定。如对整型multiset,只要用比较器函数对象lesslt;int排序关键字,元素即可按升序排列。
映射和多重映射类提供了操作与关键字相关联的映射值(mapped value)的方法。映射和多重映射的主要差别在于多重映射允许存放与映射值相关联的重复关键字,而映射只允许存放与映射值一一对应的单一关键字。
多重集合关联容器用于快速存储和读取关键字。多重映射和映射关联容器类用于快速存储和读取关键字与相关值(关键字/数值对,key/value pair)。
4.函数模板与同名的非模板函数重载时,调用的顺序是怎样的?
您可能关注的文档
最近下载
- 第18章中国传媒业的新生态、新业态《网络与新媒体概论》教学课件.ppt VIP
- 三相桥式可控整流电路设计..doc
- 第17章互联网与网民素养《网络与新媒体概论》教学课件.ppt VIP
- 第14章互联网与精准营销《网络与新媒体概论》教学课件.ppt VIP
- 《典型灾害应急实训》课程大纲(本科).docx VIP
- 第12章互联网与社会思潮《网络与新媒体概论》教学课件.ppt VIP
- 护士N2晋级N3述职报告PPT.pptx
- 《人力资源规划HRP》课件.pptx VIP
- 第9章互联网与民主政治建设《网络与新媒体概论》教学课件.pptx VIP
- (新版)高级考评员职业技能鉴定考试题库(含答案).docx
文档评论(0)