c++ - "Error: expected a ' { ' introducing a lambda body"尝试从 map<char,char> C++ 获取 char

标签 c++ encryption lambda compiler-errors stdmap

char Substitution::encodeChar(char a, std::map<char, char>&){
    return &[a];
}

这是我的实现尝试(基于预定义的类 header ,我可能不会为作业更改)。在 Visual Studio 中,我在分号处收到错误(见标题)?

尝试

&.find(a)

而是在这段时间内给我“预期的表达”。

我想我在某个地方发现了关于此问题的 const charchar 的对比,但我无法理解它。我之前曾以这种方式使用过 ma​​p 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/

相关文章:

c++ - CMake 和绝对标题路径

Java - 跨服务器散列/加密

Java8 Lambda 和异常

Java流: group and sort by a previous mapping result?

Java 8 如果Optional 不存在,如何从方法返回?

c++ - Objective-C/C++ - 链接器错误/方法签名问题

c++ - CreateRemoteThread失败,可能目标进程中的lpBaseAddress无效,但它是系统分配的?

c++ - 该程序没有产生输出,而是卡在一个循环中,几秒钟后消失并打印被杀死?

java - 使用 Bouncy CaSTLe 解密 PEM 私钥 (RSA)

c# - 在 C# 和 NodeJS 中生成相同的 PBKDF2 key