char Substitution::encodeChar(char a, std::map<char, char>&){
return &[a];
}
这是我的实现尝试(基于预定义的类标题,我可能不会为分配更改)。在Visual Studio中,我在分号上得到错误(参见标题)?
尝试
&.find(a)
相反,在这段时间内,我给了“期望的表达”。
我觉得我发现某个地方有关于 const char 与 char 的问题,但我无法解决这个问题。我之前使用过 map char char ,但在这种情况下以某种方式使用它不起作用。
答案 0 :(得分:2)
看起来您正在尝试将&
视为变量名称。不是。变量名仅由字母,数字和下划线组成。
实际上,在函数参数中,std::map<char, char>&
表示参数的类型是“std::map<char, char>
的引用”。请注意,我说“参考”。这就是&
的含义。它是类型的一部分,并使参数成为参考参数。
因此,您需要为参数指定名称,然后使用该名称:
char Substitution::encodeChar(char a, std::map<char, char>& my_map){
return my_map[a];
}
我们可以阅读参数std::map<char, char>& my_map
,因为my_map
是“std::map<char, char>
的引用”。然后,my_map[a]
访问该地图中的密钥a
。