C:\Program Files\CodeBlocks\MinGW\lib\gcc\x86_64-w64-mingw32\8.1.0\include\c++\bits\predefined_ops.h|351|error: no match for call to '(main()::<lambda(const string&)>) (char&)'|
时间: 2023-08-09 18:10:05 浏览: 159
x86_64-w64-mingw32-c++.exe
在你提供的代码中,出现了一个错误。错误的原因是,在`all_of`函数的 lambda 表达式中,你将`const string&`作为参数类型,但实际上你传递给 lambda 表达式的是一个`char&`类型的参数。
根据你的代码逻辑,你可能想要使用`char`类型的参数来检查集合中是否存在指定字符。为了修复这个错误,你可以修改 lambda 表达式的参数类型为`char`。
以下是修改后的代码示例:
```cpp
for (auto& a : num) {
auto it = line.find(a);
if (it != line.end() && all_of(it->second.begin(), it->second.end(), [&](char a) { return st.find(a) == st.end(); })) {
strr << it->first << ' ';
}
}
```
在这个修改后的代码中,我们将 lambda 表达式的参数类型修改为`char`。
希望这个修改能解决你的问题。如果还有其他问题,请随时提问。
阅读全文