这个问题在这里已有答案:
什么意思是[](unsigned char x)
这是我的代码:
#include <algorithm>
std::string str1 = "Text with some spaces";
str1.erase(std::remove(str1.begin(), str1.end(), ' '), str1.end());
std::cout << str1 << '\n';
std::string str2 = "Text\n with\tsome \t whitesspaces\n\n";
str2.erase(std::remove_if(str2.begin(), str2.end(), [](unsigned char x) {return std::isspace(x);}), str2.end());
std::cout << str2 <<'\n';
它是lambda函数定义的开始:
[](unsigned char x) {
return std::isspace(x);
}
这定义了一个临时函数接收unsigned char
并返回int
(由std::isspace
的返回值自动确定,因为lambda没有指定返回类型)。