HM187 人物档案柜

HM187 人物档案柜

HM187 人物档案柜

来源: 第 187 集 STL初识-vector存放自定义数据类型

难度: 普及-

时间限制: 1s

空间限制: 64MB

题目描述

动态数组不仅可以放 int,也可以放自定义类型,还可以放自定义类型的指针。使用前必须包含对应头文件。往里放数据仍然用**尾插**。

请实现人物类型 Person:有姓名、年龄两个成员,有参构造把传入的姓名和年龄赋给成员。

先准备 \(n\) 个人物对象,依次尾插入对象柜。遍历时用该容器专属的迭代器:尖括号里是 Person,解引用后得到一个 Person,再用点号取出姓名和年龄(迭代器本身也可当成指针,用箭头取成员,两种写法等价)。

再把这 \(n\) 个对象的**地址**依次尾插入指针柜。此时尖括号里是 Person*,解引用后得到的是指针,必须再写箭头才能拿到姓名和年龄。

判断「解引用得到什么」的办法:看尖括号里边写的是什么类型。

输入格式

第一行一个整数 \(n\)。

接下来 \(n\) 行,每行一个不含空白的姓名 \(s\) 和一个整数年龄 \(a\)。

输出格式

先输出 \(n\) 行,对应对象柜中的人物,第 \(i\) 行格式为:

name: \(s_i\) age: \(a_i\)

再输出 \(n\) 行,对应指针柜中的人物,第 \(i\) 行格式为:

::name: \(s_i\) age: \(a_i\)

标签与值之间无空格;两组字段之间恰好一个空格。指针柜每行多两个冒号前缀,以便和对象柜区分。

样例

输入 #1

5
AA 10
BB 20
CC 30
DD 40
EE 50

输出 #1

name:AA age:10
name:BB age:20
name:CC age:30
name:DD age:40
name:EE age:50
::name:AA age:10
::name:BB age:20
::name:CC age:30
::name:DD age:40
::name:EE age:50

输入 #2

1
SunWukong 999

输出 #2

name:SunWukong age:999
::name:SunWukong age:999

说明

\(1 \le n \le 1000\),姓名长度 \(1\sim 20\),\(1 \le a \le 10^6\)。

对象要先存进对象柜并保持存活,再取地址放进指针柜,避免悬挂指针。对象柜必须用「解引用后点成员」访问;指针柜必须用「解引用后再箭头」访问。

信息

ID
1186
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者