假设我拥有的向量是,我想获取累积值向量。我猜想C ++函数partial_sum可以做到这一点。但是,当我执行此功能时(程序错误),该功能不起作用。是否正确使用了partial_sum?

vector<float> vv, vvSum;
vv.push_back(1); vv.push_back(2); vv.push_back(3);

partial_sum(vv.begin(), vv.end(), vvSum.begin(), plus<float>());

for(unsigned int i = 0; i < vvSum.size(); ++i)
{
    cout << vv[i] << " " << endl;
}

最佳答案

否,partial_sum的使用不正确。

vvSum向量为空。在这种情况下,vvSum.begin()是结束迭代器,因此不能用于输出。

您可以调用vvSum.resize(vv.size());使其具有与原始大小相同的大小,或使用std::back_inserter(vvSum)迭代器,该迭代器可根据需要增加容器的大小。

关于c++ - 使用partial_sum累积的 vector 值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10999571/

10-11 00:26