我想写一个函数calc(array, n1 , n2)array是整数的 vector 。 n1n2参数是由关系0<= n1<= n2<array.size()定义的整数。calc方法应返回其索引属于[n1; n2]间隔的数组整数的总和。
我尝试了此代码,但不正确

class Answer {


public:
    static int cal(const vector<int>& array, int n1, int n2) {


        int sum = 0;

        for (vector<int>::iterator it = array[0]+n1; it != array[0]+n2; ++it)
        {
            sum + = *it;
        }
        return sum;
    }

};

最佳答案

只需使用std::accumulate header 中的 <numeric> ,如下所示:

int sum = std::accumulate(std::begin(array) + n1,
                          std::begin(array) + n2 + 1, 0);

关于c++ - vector 范围为n1 n2的元素之和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63794131/

10-12 19:27