如何使用 lambda 将字符串
num
中的所有数字求和为整数 sum
?
std::string num = "1234567891011";
int sum = accumulate(num.begin(), num.end(), 0, [](auto & a, auto & b)
{
// ???
// return int(a - '0') + int(b - '0') causes an error
});
有了这个
num
,sum
必须等于48
。
假设
num
始终在 0
和 9
之间有字符,则可以按如下方式累积:
int sum = std::accumulate(num.begin(), num.end(), 0, [](int a, char b) {
return a + (b - '0');
});