を使用すると、absとfabsの動作が異なると思いmath.hます。しかし、 and だけをcmath使用する場合、 orstd::absを使用する必要がありますstd::fabsかfabs? それとも、これは定義されていませんか?
67377 次
4 に答える
126
std::absC++ では、常に;を使用するだけで十分です。すべての数値型に対してオーバーロードされています。
C では、整数でのみ機能し、浮動小数点値absが必要です。fabsこれらは C++ で (すべての C ライブラリと共に) 利用できますが、それらを使用する必要はありません。
于 2010-06-25T13:06:30.683 に答える
23
fabsfordoubleとfloat引数を使用しても問題ありません。私がこれを好むのは、誤って を取り除いた場合でも、浮動小数点入力の動作が同じままであることを保証するためstd::ですabs。
の代わりabsにstd::abs. using namespace std;が推論すると思ってstd::absいましたが、そうではなく、代わりに C バージョンを使用していました。
とにかく、意図を明確に文書化する方法として、浮動小数点入力のfabs代わりに使用するのが良いと思います。abs
于 2012-12-09T22:44:46.957 に答える
13
std::fabs浮動小数点入力を明示的に推奨するもう 1 つの理由があります。
<cmath> を含めるのを忘れた場合は、std::abs(my_float_num)代わりstd::abs(int)にstd::abs(float). 気づきにくい。
于 2016-07-14T07:19:25.853 に答える