char Substitution::encodeChar(char a, std::map<char, char>&){
return &[a];
}
这是我的实现尝试(基于预定义的类 header ,我可能不会为作业更改)。在 Visual Studio 中,我在分号处收到错误(见标题)?
尝试
&.find(a)
而是在这段时间内给我“预期的表达”。
我想我在某个地方发现了关于此问题的 const char 与 char 的对比,但我无法理解它。我之前曾以这种方式使用过 map char 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]
访问 key a
在那张 map 上。
关于c++ - "Error: expected a ' { ' introducing a lambda body"尝试从 map<char,char> C++ 获取 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22257391/