news 2026/6/28 0:46:30

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/6/24 8:01:45

    我发现流式图像滤镜处理慢 后来才知道用WebAssembly SIMD加速

    &#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 目录 我和Node.js的相爱相杀史&#xff1a;一个前端开发者的血泪日记 一、从"前端废物"到全栈咸鱼的蜕变 二、Node.js …

    作者头像 李华
    网站建设 2026/6/27 23:15:29

    基于springboot + vue医院设备管理系统(源码+数据库+文档)

    医院设备 目录 基于springboot vue医院设备系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue医院设备系统 一、前言 博主介绍&#xff1a;✌️大…

    作者头像 李华
    网站建设 2026/6/26 17:18:04

    【dz-954】基于单片机的热水器设计

    摘要 随着人们生活品质的提升&#xff0c;热水器作为家庭必备电器&#xff0c;其安全、节能与智能化运行愈发受到重视。传统热水器存在水温控制精度低、水位监测滞后、能源利用效率不高等问题&#xff0c;依赖人工操作易导致资源浪费或使用不便&#xff0c;难以满足现代家庭对…

    作者头像 李华
    网站建设 2026/6/26 21:39:57

    【dz-959】基于嵌入式的GPS定位系统和智能语音播报系统设计

    摘 要 在现代社会&#xff0c;随着物联网技术的飞速发展&#xff0c;人们对实时定位和信息交互的需求日益增长。传统的定位系统往往只能提供单一的视觉信息&#xff0c;缺乏直观的交互体验。因此&#xff0c;设计一种集成了定位与语音交互功能的嵌入式系统具有重要的现实意义。…

    作者头像 李华