ラムダの主なパラメータである文字列にアクセスしようとすると、コンパイラはこれを認識しません。その文字列を使用して関数を呼び出します。ここでC++ 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);});
私はまた、他の関数でのエラーのこの種を取得していますその呼び出しでラムダの文字列paramを使います。
ご協力いただきありがとうございます。
std :: for_each(inTokens.begin()、inTokens.end()、[&outTokens](const std :: string&s){std :: string newS = s; outTokens.push_back(newS) ;}); ' –