stl 常用数学函数

1、计算绝对值

计算整数的绝对值:

//定义
int       abs( int n );
long      abs( long n );
long long abs( long long n );
//用法
int main()
{
	int nA = 5, nB = -6;
	nA = std::abs(nA);
	std::cout << nA << std::endl;//5
	nB = std::abs(nB);
	std::cout << nB << std::endl;//6
}

计算浮点数的绝对值:

//定义
float       abs( float arg );
double      abs( double arg );
long double abs( long double arg );

float       fabs ( float arg );
float       fabsf( float arg );
double      fabs ( double arg );
long double fabs ( long double arg );
long double fabsl( long double arg );
//用法
int main()
{
	float fA = -5.5;
	double dB = -9.5;
	float fC = -5.25;
	double dD = -3.21;

	fA = std::abs(fA);
	std::cout << fA << std::endl;//5.5
	dB = std::abs(dB);
	std::cout << dB << std::endl;//9.5
	fC = std::fabs(fC);
	std::cout << fC << std::endl;//5.25
	dD = std::fabs(dD);
	std::cout << dD << std::endl;//3.21
}

2、计算某数的给定次幂

//定义
float       pow ( float base, float exp );
float       powf( float base, float exp );
double      pow ( double base, double exp );
long double pow ( long double base, long double exp );
long double powl( long double base, long double exp );
float       pow ( float base, int iexp );
double      pow ( double base, int iexp );
long double pow ( long double base, int iexp );
//用法
int main()
{
	//求3的2次方
	double dParam1 = 3;
	int nParam2 = 2;
	double dRt = std::pow(3,2);//第一个参数必须为浮点型
	std::cout << dRt << std::endl;//9
}

3、计算平方根

//定义
float       sqrt ( float arg );
float       sqrtf( float arg );
double      sqrt ( double arg );
long double sqrt ( long double arg );
long double sqrtl( long double arg );
//用法
int main()
{
	//求4的平方根
	double dParam = 4;
	double dRt = std::sqrt(dParam);//参数必须为浮点型
	std::cout << dRt << std::endl;//2
}

4、计算立方根

//定义
float       cbrt ( float arg );
float       cbrtf( float arg );
double      cbrt ( double arg );
long double cbrt ( long double arg );
long double cbrtl( long double arg );
//用法
int main()
{
	//求8的立方根
	double dParam = 8;
	double dRt = std::cbrt(dParam);//参数必须为浮点型
	std::cout << dRt << std::endl;//2
}

5、计算正弦

       sinα = 对边 比 斜边

//定义
float       sin ( float arg );
float       sinf( float arg );
double      sin ( double arg );
long double sin ( long double arg );
long double sinl( long double arg );

6、计算余弦

       sinα = 邻边 比 斜边

//定义
float       cos ( float arg );
float       cosf( float arg );
double      cos ( double arg );
long double cos ( long double arg );
long double cosl( long double arg );

7、计算正切

       sinα = 对边 比 邻边

//定义
float       tan ( float arg );
float       tanf( float arg );
double      tan ( double arg );
long double tan ( long double arg );
long double tanl( long double arg );

8、计算反正弦

       通过正弦值求弧度。

//定义
float       asin ( float arg );
float       asinf( float arg );
double      asin ( double arg );
long double asin ( long double arg );
long double asinl( long double arg );

9、计算反余弦

       通过余弦值求弧度。

//定义
float       acos ( float arg );
float       acosf( float arg );
double      acos ( double arg );
long double acos ( long double arg );
long double acosl( long double arg );

10、计算反正切

       通过正切值求弧度。

//定义
float       atan ( float arg );
float       atanf( float arg );
double      atan ( double arg );
long double atan ( long double arg );
long double atanl( long double arg );

11、计算整数相除的商和余数

//定义
std::div_t     div( int x, int y );
std::ldiv_t    div( long x, long y );
std::lldiv_t   div( long long x, long long y );
//用法
int main()
{
	//求整数相除的商和余数
	std::div_t rt = std::div(10,3);
	
	std::cout << "商:" << rt.quot << " 余数:" << rt.rem << std::endl;//商:3 余数:1
}

12、返回两个浮点数的较大者

       比较两个浮点数,返回较大值。

//定义
float       fmax ( float x, float y );
float       fmaxf( float x, float y );
double      fmax ( double x, double y );
long double fmax ( long double x, long double y );
long double fmaxl( long double x, long double y );
//用法
int main()
{
	//返回两个浮点数的较大值
	double dValue1 = 2.5686100;
	double dValue2 = 2.5686300;
	double dRt = std::fmax(dValue1, dValue2);//2.5686300000000002
}

13、返回两个浮点数的较小者

       比较两个浮点数,返回较小值。

//定义
float       fmin ( float x, float y );
float       fminf( float x, float y );
double      fmin ( double x, double y );
long double fmin ( long double x, long double y );
long double fminl( long double x, long double y );

14、计算两个浮点数的正数差

       计算两个浮点数的正数差。

//定义
float       fdim ( float x, float y );
float       fdimf( float x, float y );
double      fdim ( double x, double y );
long double fdim ( long double x, long double y );
long double fdiml( long double x, long double y );
//用法
int main()
{
	//计算两个浮点数的正数差
	std::cout << "std::fdim(4.2,1.1) " << std::fdim(4.2,1.1) << std::endl;//std::fdim(4.2,1.1) 3.1
	std::cout << "std::fdim(1.1, 4.2) " << std::fdim(1.1, 4.2) << std::endl;//std::fdim(1.1, 4.2) 0
	std::cout << "std::fdim(4.2,-1.1) " << std::fdim(4.2, -1.1) << std::endl;//std::fdim(4.2,-1.1) 5.3
	std::cout << "std::fdim(1.1, -4.2) " << std::fdim(1.1, -4.2) << std::endl;//std::fdim(1.1, -4.2) 5.3
}

15、计算 x 与 y 平方和的平方根

float       hypot ( float x, float y );
float       hypotf( float x, float y );
double      hypot ( double x, double y );
long double hypot ( long double x, long double y );
long double hypotl( long double x, long double y );
float       hypot ( float x, float y, float z );
double      hypot ( double x, double y, double z );
long double hypot ( long double x, long double y, long double z );
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值