错误:需要lambda表达式的正文.(什么是Lambda???)

Error : expected body of lambda expression .. (what is Lambda ???)

本文关键字:什么 Lambda 正文 需要 lambda 表达式 错误      更新时间:2023-10-16

开始学习CS106B,错误消息告诉我这3行有问题。

"错误:需要lambda表达式的正文"

字符串密钥=aToken.substr([i],1);

myMap.put(aToken.substr([i],1),1);

else{myMap[aToken.substr([i],1)]+=1};

int main() {
TokenScanner myTK;
myTK.setInput("Sven is Pro Moo Noob <naja>");
myTK.ignoreWhitespace();
Map <string ,int> myMap;
while(myTK.hasMoreTokens()){
    string aToken = myTK.nextToken();
    for(int i=0;i<= int(aToken.size());i++){
        string key = aToken.substr([i],1);
        if(!myMap.containsKey(key)){
                myMap.put(aToken.substr([i],1),1);
        }
        else {myMap[aToken.substr([i],1)] +=1};
    }
    cout << aToken << endl;
}
cout<< myMap.toString() << endl;
return 0;
};
Lambda表达式通常采用以下形式:
[capture list](parameters) {function body}

当编译器注意到您的[i]时,它希望它是lambda表达式的开头。在您的情况下,没有理由将数字括在方括号中。

Lambda表达式允许使用匿名类内联构造函子对象。请参阅:什么是C++11中的lambda表达式?