gpt4 book ai didi

C++ vector 累加

转载 作者:可可西里 更新时间:2023-11-01 16:26:30 34 4
gpt4 key购买 nike

我正在尝试对 vector 使用累加函数

vector <double> A;
double B = 0;

A.reserve(100);
for(itr = 0; itr < 210; itr++)
{
term1 = pow(r[itr], 12);
term1 = 1/term1;
term2 = pow(r[itr], 6);
term2 = 2/term2;
A.push_back(term1 - term2);
}
B = accumulate(A.begin(), A.end(), 0);

但是,我总是得到 B = 0,而 A 有非零值

最佳答案

std::accumulate 在结果的类型是初始值的类型而不是容器元素的类型的意义上有点偷偷摸摸!所以你的累加器产生 ints。

要解决此问题,请累加到 double 中:

accumulate(A.begin(), A.end(), 0.0);
// ^^^^^^^ literal of type double

关于C++ vector 累加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8227610/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com