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

C++20 STL <numbers> 数学常量库

C++20 STL numbers 数学常量库

  • 1. numbers 概述
  • 2. 常见分类与常量速览
  • 3. C++示例

1. numbers 概述

<numbers>是 C++20 新增的标准头文件,定义了一组常用数学常量。命名空间是std::numbers。在实际工程应用中,应该用标准替代经验,用规范替代习惯。用<numbers>替代手写常量,统一数学表达方式,提升可读性与可靠性

核心特点:

  • constexpr 编译期常量
  • 类型安全(支持模板变量)
  • 精度由标准库保证
  • 无宏污染、无全局符号冲突

为什么 比宏更好?

对比项宏定义<numbers>
类型安全
命名空间
编译期部分
精度保证人工标准
工程规范

❌ 传统写法:

#definePI3.1415926

✅ 现代写法:

constexprautopi=std::numbers::pi;

<numbers><cmath>的关系

<numbers><cmath>
常量函数
编译期运行期
类型安全普通函数

2. 常见分类与常量速览

π 相关

std::numbers::pi// πstd::numbers::inv_pi// 1 / πstd::numbers::inv_sqrtpi// 1 / √π

自然常数e 相关

std::numbers::e// estd::numbers::log2e// log2(e)std::numbers::log10e// log10(e)

对数 相关

std::numbers::ln2// ln(2)std::numbers::ln10// ln(10)

根号 相关

std::numbers::sqrt2// √2std::numbers::sqrt3// √3std::numbers::inv_sqrt2// 1 / √2

3. C++示例

  1. 角度 ↔ 弧度转换

    constexprdoubleDeg2Rad(doubledeg){returndeg*std::numbers::pi/180.0;}constexprdoubleRad2Deg(doublerad){returnrad*180.0/std::numbers::pi;}
  2. 几何 / 位姿 / 旋转计算

    doubleyaw=Deg2Rad(90.0);doublec=std::cos(yaw);doubles=std::sin(yaw);
  3. 中常用常量汇总(20 个)

pi,inv_pi,inv_sqrtpi,e,log2e,log10e,ln2,ln10,sqrt2,sqrt3,inv_sqrt2,pi_v<float>,pi_v<double>,e_v<float>,e_v<double>,ln2_v<float>,ln10_v<double>,sqrt2_v<float>,sqrt3_v<double>
    http://www.cnnetsun.cn/news/134034.html

    相关文章:

  1. 分布式数据集成平台终极指南:可视化数据同步与大数据处理完整教程
  2. 储能辅助火电机组二次调频控制策略及容量优化配置研究Simulink实现
  3. I2C与SPI
  4. 配电网中的拥塞管理Congestion Management in Distribution Networks
  5. 中华人民共和国劳动合同法
  6. Kotaemon HTTPS 部署教程:SSL证书配置全流程
  7. 【dz-956】基于单片机的公交车系统
  8. SECS/GEM通信实战指南:Python实现半导体设备智能监控系统
  9. Chrome测试版本128.0.6613.137:跨平台自动化测试的终极解决方案
  10. CMA/CNAS软件测评机构:【Gatling数据库性能关联测试JDBC连接和SQL执行时间监控】
  11. 微信自动化助手:零成本Windows部署全攻略
  12. PCB激光钻孔:CO₂激光VS紫外激光,谁更胜一筹?
  13. 数据质量革命:Great Expectations如何重塑企业数据治理格局
  14. AI如何帮你快速解决SQL Server连接问题
  15. torch.matmul性能优化:比传统方法快10倍的技巧
  16. OpenModScan 完全指南:掌握工业自动化调试的必备利器
  17. 深度学习压缩技术实战:CompressAI框架的5大核心应用场景
  18. 10分钟快速上手:Android离线语音识别的终极解决方案
  19. 高效PLC通信框架:S7NetPlus实用开发指南
  20. 如何快速上手Semantic UI Calendar:终极前端日期选择器指南
  21. 电商平台如何用Kafka工具实现实时订单处理
  22. Rustup深度解析:告别版本管理烦恼的终极指南
  23. FlyFish:企业级数据可视化的低代码革命
  24. RobotGo事件监听:构建智能GUI自动化系统的核心技术
  25. 超实用教程:Mikan Project带你轻松玩转动漫资源管理
  26. Ubuntu输入法实战:打造个性化中文输入环境
  27. 3大核心技巧:充分发挥Windows终端扩展能力
  28. 零基础学编程:二维数组的5个简单练习
  29. Jupyter AI深度应用:重新定义数据科学工作流的智能化转型
  30. 基于鸿蒙的在线学习系统的设计与实现外文翻译