HM174 双栏人物卡
HM174 双栏人物卡
来源: 第 174 集 模板-类模板基本语法
难度: 普及-
时间限制: 1s
空间限制: 64MB
题目描述
要做一个通用类:写类时成员类型先不确定,创建对象时再通过模板参数列表把类型传进去。template 后面紧跟类,就是类模板(后面紧跟函数才是函数模板)。class 与 typename 都可以声明类型参数。
两个成员类型往往不一样,这时必须写两个类型参数;若两个成员类型相同,一个类型参数就够用。
请实现:
类模板
Person<NameType, AgeType>- 成员
mName类型为NameType,mAge类型为AgeType。 - 有参构造把传入的姓名、年龄赋给两个成员。
showPerson()输出一行:name:、姓名、一个空格、age:、年龄。
- 成员
类模板
Twin<T>- 两个成员类型相同,都是
T。 showTwin()输出一行:left:、左值、一个空格、right:、右值。
- 两个成员类型相同,都是
先读入 \(n\) 张人物卡,必须用 Person<string, int> 创建(尖括号给类型传值,圆括号给构造函数传实参),并调用 showPerson()。再读入 \(m\) 对整数,必须用 Twin<int> 创建并调用 showTwin()。
输入格式
第一行两个整数 \(n, m\)(\(1 \le n, m \le 1000\))。
接下来 \(n\) 行,每行一个不含空白的姓名 \(s\)(长度 \(1\sim 20\))和一个整数年龄 \(a\)(\(1 \le a \le 10^6\))。
再接下来 \(m\) 行,每行两个整数 \(x, y\)(\(\lvert x\rvert, \lvert y\rvert \le 10^9\))。
输出格式
先输出 \(n\) 行人物卡,第 \(i\) 行格式为:
name: \(s_i\) age: \(a_i\)
再输出 \(m\) 行整数对,第 \(j\) 行格式为:
left: \(x_j\) right: \(y_j\)
标签与其后的值之间无空格;两组字段之间恰好一个空格。
样例
输入 #1
2 1
SunWukong 999
ZhuBajie 888
3 4
输出 #1
name:SunWukong age:999
name:ZhuBajie age:888
left:3 right:4
输入 #2
1 2
TangSeng 18
-1 0
7 7
输出 #2
name:TangSeng age:18
left:-1 right:0
left:7 right:7
说明
类模板在 template 后写类。模板参数列表负责给类型传值,构造函数的圆括号负责给成员传值。姓名与年龄类型不同,必须写两个类型参数;Twin 两个成员类型相同,只写一个类型参数。
信息
- ID
- 1173
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者