刚刚开始学习CS106B,错误消息告诉我这3行错误。
“错误:lambda表达式的预期主体”
字符串键= aToken.substr([i],1);
myMap.put(aToken.substr([i],1),1);
否则{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表达式允许使用匿名类内联构造函子对象。另请:What is a lambda expression in C++11?
关于c++ - 错误:lambda表达式的预期主体..(什么是Lambda ???),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20276494/