Il programma C++ riportato di seguito dovrebbe restituire un valore estremamente positivo. Tuttavia, restituisce 0
.Prodotto interno zero quando si utilizza std :: inner_product
Cosa succede? Sospetto una conversione int doppia, ma non riesco a capire perché e come.
#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. Anche quello mi ha preso una volta. –