HM174 双栏人物卡

HM174 双栏人物卡

HM174 双栏人物卡

来源: 第 174 集 模板-类模板基本语法

难度: 普及-

时间限制: 1s

空间限制: 64MB

题目描述

要做一个通用类:写类时成员类型先不确定,创建对象时再通过模板参数列表把类型传进去。template 后面紧跟类,就是类模板(后面紧跟函数才是函数模板)。classtypename 都可以声明类型参数。

两个成员类型往往不一样,这时必须写两个类型参数;若两个成员类型相同,一个类型参数就够用。

请实现:

  1. 类模板 Person<NameType, AgeType>

    • 成员 mName 类型为 NameTypemAge 类型为 AgeType
    • 有参构造把传入的姓名、年龄赋给两个成员。
    • showPerson() 输出一行:name:、姓名、一个空格、age:、年龄。
  2. 类模板 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
通过率
?
上传者