调试和释放模式下的结果不同
||
vector<double> pvec;
double firstnode=0.0;
for(iter2=svec.begin(); iter2!=svec.end(); iter2++)
{
double price= 0.0;
string sFiyat = iter2->substr(13);
stringstream(sFiyat)>>price;
price=log(price);
if (iter2==iter)
{
firstnode = price;
}
price -= firstnode;
pvec.push_back(price);
}
我得到了上面的代码,调试和发布模式存在奇迹般的区别。该算法旨在使向量的第一个元素等于零,然后找到第一个元素与其他元素的对数之差。
在调试模式下,这给出了我想要的结果,并且向量的第一个元素始终等于零。但是,当我切换到释放模式时,向量的第一个元素等于一些较小的数字,例如8.86335e-019。
不仅如此。当我在行“ price = log(price); \”之后放置行“ cout << price << endl; \”时,从发行版获得的结果与从调试模式获得的结果相同。有什么解释吗?
没有找到相关结果
已邀请:
3 个回复
臀博
漂汀拦
貉骂