假设我具有的矢量< 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;
}
答案 0 :(得分:3)
不,partial_sum
使用不正确。
vvSum
向量为空。在这种情况下,vvSum.begin()
是一个结束迭代器,因此不能用于输出。
您可以调用vvSum.resize(vv.size());
使其与原始版本具有相同的大小,或使用std::back_inserter(vvSum)
迭代器,这会根据需要增加容器的大小。