news 2026/5/1 6:10:56

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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>
    版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
    网站建设 2026/4/26 15:22:30

    PowerDMIS斜面上的圆柱测量

    斜面上的测量高度&#xff0c;斜面时&#xff0c;由于圆柱的中心轴不与轴平行&#xff0c;根据测头直径的大小&#xff0c;有时会与测量物互相干涉&#xff0c;所以请注意输入的测量高度。此圆柱全长为 5mm&#xff0c;所以至少要设置为“5-测头半径以下的值”。&#xff08;测…

    作者头像 李华
    网站建设 2026/5/1 5:05:17

    企业数据API对接厂商选型指南:技术挑战、解决方案与最佳实践

    在数字化转型的浪潮中&#xff0c;企业数据已成为驱动业务增长的核心资产。然而&#xff0c;将这些分散在不同系统&#xff08;如CRM、ERP、财务软件、营销平台&#xff09;中的数据进行有效整合与利用&#xff0c;却是一项普遍且艰巨的挑战。许多企业管理者、架构师和开发团队…

    作者头像 李华
    网站建设 2026/4/30 20:25:50

    Kotaemon能否用于航班信息查询?实时数据融合挑战

    Kotaemon能否用于航班信息查询&#xff1f;实时数据融合挑战 在机场候机大厅里&#xff0c;乘客掏出手机问&#xff1a;“CA1833现在延误了吗&#xff1f;”——这看似简单的一句话&#xff0c;背后却是一场对智能系统响应速度与准确性的双重考验。传统聊天机器人可能只能回答“…

    作者头像 李华
    网站建设 2026/4/24 11:34:25

    Claude Code接入国产大模型全攻略,三行命令搞定五款最强AI编程模型

    文章介绍了一个轻量级的Claude Code模型路由项目&#xff0c;解决了Claude Code默认不支持第三方模型的问题。用户可通过简单三行命令配置&#xff0c;在独立终端中使用DeepSeek、Kimi等多款国产AI编程模型&#xff0c;同时不影响原有的Claude订阅服务。该项目与Claude Code完全…

    作者头像 李华