小编RW2*_*W23的帖子

C++ Lambda - String params在以下函数调用中不起作用

我有一个问题,当我尝试访问一个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);});
}
Run Code Online (Sandbox Code Playgroud)

并产生以下错误:

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

当我尝试调用一个在调用中使用lambda的字符串参数的函数时,我也在其他函数中遇到这种错误.

任何帮助深表感谢!

c++ lambda

3
推荐指数
1
解决办法
353
查看次数

标签 统计

c++ ×1

lambda ×1