El programa C++ a continuación debe devolver un valor estrictamente positivo. Sin embargo, devuelve 0
.Producto interno cero al usar std :: inner_product
¿Qué ocurre? Sospecho que se trata de una conversión doble, pero no entiendo por qué y cómo.
#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
int main()
{
vector<double> coordinates;
coordinates.push_back(0.5);
coordinates.push_back(0.5);
coordinates.push_back(0.5);
cout<<inner_product(coordinates.begin(), coordinates.end(), coordinates.begin(), 0)<<endl;
return 0;
}
Chuckle. Ese me consiguió una vez también. –