当前位置: 首页 > wzjs >正文

网站 微信认证河南省住建局官网

网站 微信认证,河南省住建局官网,公司网页邮箱,凡科轻站小程序收费吗C中std::fmax和std::max的区别 这两个函数都用于求最大值&#xff0c;但在C中有重要区别&#xff1a; 1. 基本区别特性std::maxstd::fmax所属头文件<algorithm><cmath>主要用途通用最大值比较专门为浮点数设计参数类型任意可比较类型浮点类型(float/double/long do…

C++中std::fmaxstd::max的区别

这两个函数都用于求最大值,但在C++中有重要区别:

1. 基本区别

特性std::maxstd::fmax
所属头文件<algorithm><cmath>
主要用途通用最大值比较专门为浮点数设计
参数类型任意可比较类型浮点类型(float/double/long double)
NaN处理可能产生未定义行为明确处理NaN情况

2. 详细说明

std::max (来自<algorithm>)

template< class T >
const T& max(const T& a, const T& b);
  • 通用最大值函数,适用于任何可比较类型
  • 如果参数是NaN,行为是未定义的(可能返回NaN或另一个参数)
  • 可以用于整数、浮点数、自定义类型等
  • 是模板函数,编译时确定类型

std::fmax (来自<cmath>)

double fmax(double x, double y);
float fmaxf(float x, float y);
long double fmaxl(long double x, long double y);
  • 专门为浮点数设计的最大值函数
  • 明确处理NaN:如果一个参数是NaN,返回另一个参数;如果两个都是NaN,返回NaN
  • 有类型特化版本(fmaxf, fmaxl)
  • 遵循IEEE 754浮点规范

3. NaN处理示例

#include <iostream>
#include <algorithm>
#include <cmath>
#include <limits>int main() {
double a = 1.5;
double nan = std::numeric_limits<double>::quiet_NaN();std::cout << "std::max(1.5, NaN): " << std::max(a, nan) << "\n";
std::cout << "std::fmax(1.5, NaN): " << std::fmax(a, nan) << "\n";std::cout << "std::max(NaN, NaN): " << std::max(nan, nan) << "\n";
std::cout << "std::fmax(NaN, NaN): " << std::fmax(nan, nan) << "\n";return 0;
}

可能输出:

std::max(1.5, NaN): nan
std::fmax(1.5, NaN): 1.5
std::max(NaN, NaN): nan
std::fmax(NaN, NaN): nan

4. 性能考虑

  • 对于非NaN情况,两者性能相当
  • std::max可能更适合模板编程和通用代码
  • std::fmax在涉及可能NaN的浮点运算时更安全

5. 使用建议

  • 使用std::max

  • 处理非浮点类型

  • 确定不会有NaN值

  • 需要模板通用性

  • 使用std::fmax

  • 处理浮点数且可能有NaN

  • 需要可预测的NaN处理行为

  • 编写数值计算代码

http://www.dtcms.com/wzjs/576551.html

相关文章:

  • 阳明拍卖公司网站wordpress 多说样式
  • 怎么自己做网站免费的天眼查企业查询系统官网
  • 如何做服装的微商城网站建设伪静态网站配置
  • 青岛网站设计公司推荐wordpress google cdn
  • 淘宝网站的建设目的是什么意思网页设计需要做什么
  • 网站建设装修百度搜索引擎推广
  • 电话外呼系统安徽seo报价
  • 做一个网站难不难wordpress 模拟post
  • 评论回复网站怎么做广东龙盛建设工程有限公司
  • 外文网站设计网站建设首选-云端高科
  • 做图的模板下载网站图做的好的网站
  • 中国建设银行云南省分行官方网站山东建设厅执业资格注册中心网站
  • 网站排名网络推广如何制作动漫网站模板
  • 网站不让百度收录网络推广好不好干
  • 专业网站建设找哪家网站开发工资低
  • 建网站怎么上线wordpress站点进入时弹窗
  • 网站做成软件免费wordpress首页登录
  • 网站域名解析登陆做网站想要个计算器功能
  • 建设酒店网站ppt模板下载wordpress主题 单栏
  • 百度做公司网站需要多少钱郑州网络推广效果
  • 文件备案网站建设方案微信会员卡管理系统
  • 什么网站是教做纸工的北大青鸟的网站建设课程多少钱
  • 开网站做网站教育机构网站建设加盟
  • 建站网站官方深圳办公室设计公司排名
  • 陕西省建设局网站软件工程的定义
  • 普通网站建设是什么高端网站设计新鸿儒
  • 做网站基本费用大概需要多少招商网站建设方案
  • 重庆网站建设首选承越建设招投标网
  • 沈阳公司网站设计网站建设排序题
  • 手机能建设网站吗免费的网站给一个