Chương trình C++ dưới đây sẽ trả về giá trị dương. Tuy nhiên, nó trả về 0
.Sản phẩm bên trong không sử dụng tiêu chuẩn std :: inner_product
Điều gì sẽ xảy ra? Tôi nghi ngờ một chuyển đổi int-double, nhưng tôi không thể tìm ra lý do tại sao và như thế nào.
#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. Điều đó đã giúp tôi một lần. –