使用哈希表来模拟函数的重载和调用。我们可以将函数的名字和参数类型组合作为哈希表的键,函数的返回类型作为哈希表的值。这样,我们就可以在O(1)的时间复杂度内完成函数的创建和调用。
具体的步骤如下:
创建一个哈希表mp
来存储函数的名字和参数类型组合,以及另一个哈希表name
来存储函数的名字。
对于每一个操作,首先解析输入的字符串,获取函数的名字、参数类型和返回类型。
请你模拟函数的重载和调用
1.创建一个方法: 输入的格式为:“返回类型 方法名(变量类型1 变量名1,变量类型2 变量名2......)”,函数体省略。
2调用一个方法 输入的格式为:"方法名(变量类型1,变量类型2......)”。
请你在每次操作后给出系统反馈。
1.创建方法时,若创建成功,则输出一个字符串"Yes."。否则输出一个字符串"redefinition of xxx."
2 调用方法时 若调用成功 则输H一个字符串"Yes." 若方法名不存在,则输出"There is no function xxx."。若方法名存在但方法内部的变量类型错误,则输出"xxx was not declared in this scope."
第一行输入一个正整数q,代表操作次数。
接下来的2∗q行,每2行代表一次操作。
第一行为一个正整数op,代表操作类型
第二行为一个字符串,代表一次操作。
1≤q≤100
1≤op≤2
操作的字符串长度不超过100,且格式保证合法。
输出q行字符串,代表每次操作系统的反馈。
输入
7
1
void f(int x)
1
int g(int x,String s)
2
f(String)
1
void f(double x,double y)
2
f(double,double)
2
s(int,String)
1
void f(int y)
输出
Yes.
Yes.
f was not declared in this scope.
Yes.
Yes.
There is no function s.
redefinition of f.