gpt4 book ai didi

C++ Lambda——字符串参数在后续函数调用中不起作用

转载 作者:太空狗 更新时间:2023-10-29 19:57:10 25 4
gpt4 key购买 nike

我遇到一个问题,当我尝试访问作为 lambda 中主要参数的字符串时,当我尝试使用该字符串调用函数时,编译器无法识别它。

这是我的代码:

void removePunctuation(std::vector<std::string> &inTokens,
std::vector<std::string> &outTokens) {
std::for_each(inTokens.begin(), inTokens.end(), [outTokens](std::string s) {
std::string newS = s;
// newS.erase(std::remove_if(newS.begin(), newS.end(), ispunct));
outTokens.push_back(newS);});
}

并产生以下错误:

a2.cpp:114:19: error: no matching member function for call to 'push_back'
outTokens.push_back(newS);});

当我尝试调用在其调用中使用 lambda 字符串参数的函数时,我在其他函数中也遇到了此类错误。

非常感谢任何帮助!

最佳答案

默认情况下,lambda 参数是 passed as read-only , 尝试

[&outTokens](std::string s)

(如果希望修改outTokens参数,这也许就是你想要的。)

关于C++ Lambda——字符串参数在后续函数调用中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40026070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com