0

で機能する関数がありvector <vector <double> >ます。ある時点で、比較で要素の絶対値を使用したいのですが、間違った動作をしていたので、次のデバッグ行を追加しました。

std::cout << M[3][2] << " " << abs(M[3][2]) << "\n";

驚くべきことに、出力は次のようになります。

0.667 0

どうしてこれなの?

4

1 に答える 1

8

またはで定義されている の整数オーバーロードの1 つを呼び出している可能性があるため、引数が切り詰められています。abs<stdlib.h><cstdlib>

浮動小数点#include <cmath>のオーバーロードを拾う必要があります。

于 2015-04-01T21:44:07.453 に答える