0

有没有更好的方法在 C++11 中编写此代码?

int RawSheet::getNumberOfCities() const
{
    int n = 0;
    for (const auto &c : countries) {
        n += c.getNumberOfCities();
    }
    return n;
}

谢谢

4

1 回答 1

3

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();
    });
}
于 2013-06-21T23:16:34.960 回答