使用partial_sum累积的矢量值

时间:2012-06-12 15:12:48

标签: c++ vector

假设我具有的矢量< 1,2,3>,我想得到累积值矢量< 1,3,6>。我猜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;
}

1 个答案:

答案 0 :(得分:3)

不,partial_sum使用不正确。

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

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