有没有更好的方法在 C++11 中编写此代码?
int RawSheet::getNumberOfCities() const
{
int n = 0;
for (const auto &c : countries) {
n += c.getNumberOfCities();
}
return n;
}
谢谢
std::accumulate
与 lambda 回调一起使用:
#include <algorithm>
int RawSheet::getNumberOfCities() const
{
return std::accumulate(countries.begin(), countries.end(), 0, [] (RawSheet const& op1, RawSheet const& op2)
{
return op1.getNumberOfCities() + op2.getNumberOfCities();
});
}