以下の C++ プログラムは、厳密に正の値を返す必要があります。ただし、 を返します0
。
何が起こるのですか ?int-double 変換が疑われますが、その理由と方法がわかりません。
#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;
}