Программа на С++ ниже должна возвращать строго положительное значение. Однако он возвращает 0
.
Что происходит? Я подозреваю, что это двойное преобразование, но я не могу понять, почему и как.
#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;
}