下面的 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;
}