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ラムダ コールバックで使用します。

#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 に答える