C ++中是否有任何不同的功能,我可以替换功能fabs()? 例如:
fabs(tab[j][i]) > fabs(tab[max][i])
答案 0 :(得分:2)
是的,有。 abs
from <cmath>
答案 1 :(得分:0)
如果参数始终为fabs
,我建议你仍然使用double
- 它更可靠。风险是:有时只有abs(int)
可见,因此您的double
参数将被截断为int
(但您可能会收到编译器警告)。
其中一个原因是,在C ++ 17之前,无法保证单个标头包含abs(int)
和abs(double)
:<cmath>
必须包含abs(double)
和<cstdlib>
必须包含abs(int)
,但当然可能包含两者。因此,更改编译器可能会更改选择的重载。
另一个例子:如果你#include
"math.h"
而不是<cmath>
,并且使用Visual C ++,abs(double)
是否可见?它将取决于Visual Studio 2013,但是当您升级到Visual Studio 2015时,您将失去它。
当然,当其参数类型未知时,使用仍应使用abs
,例如它是模板的一部分。