char Substitution::encodeChar(char a, std::map<char, char>&){
return &[a];
}
这是我的实现尝试(基于预定的类标头,我可能不会更改为作业)。在Visual Studio中,我会在半隆上获得错误(请参阅标题)?
尝试
&.find(a)
相反,在此期间给我"预期的表达"。
我想我在某个地方发现了有关 const char vs. char 的东西,但我无法将其缠绕在它上。我已经使用了 MAP CHAR 以这种方式使用,但是在这种情况下以某种方式使用它不起作用。
看起来您正在尝试将&
视为变量名。它不是。可变名称仅由字母,数字和下划线组成。
实际上,在函数参数中,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
。