Valores de vector acumulados utilizando parcial_sum
Frecuentes
Visto 459 veces
0
Supongamos que el vector que tengo es <1, 2, 3>, quiero obtener el vector de valores acumulados <1, 3, 6>. Supongo que la función de C++ parcial_sum hace eso. Pero esta función no funciona cuando ejecuto (error del programa). ¿Es parcial_sum usado correctamente?
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 Respuestas
3
NO, partial_sum
se está utilizando incorrectamente.
La vvSum
el vector está vacío. En esa situación, vvSum.begin()
es un iterador final y, por lo tanto, no se puede utilizar para la salida.
Puedes llamar vvSum.resize(vv.size());
para que tenga el mismo tamaño que el original, o utilice un std::back_inserter(vvSum)
iterador, que aumenta el tamaño del contenedor según sea necesario.
Respondido el 12 de junio de 12 a las 16:06
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas c++ vector or haz tu propia pregunta.