news 2026/1/19 6:34:39

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/1/15 16:24:29

    专业的货架电商公司

    专业的货架电商公司&#xff1a;柯瑞德货架工厂的卓越之道 在电商蓬勃发展的当下&#xff0c;货架作为仓储物流的重要组成部分&#xff0c;其品质与适用性对企业运营起着关键作用。专业的货架电商公司成为众多企业的首选合作对象&#xff0c;柯瑞德货架工厂便是其中的佼佼者。…

    作者头像 李华
    网站建设 2026/1/16 23:56:54

    抖音碰一下买单是真的吗?支付闭环+拓客引流一站式实现

    最近&#xff0c;有消息称&#xff0c;抖音买单将全面升级为抖音碰一下买单。这下&#xff0c;许多原本还秉持观望态度的创业者们可谓是彻底坐不住了&#xff0c;纷纷从各个渠道打听起了入局相关的各项事宜&#xff0c;如抖音碰一下买单服务商怎么申请等。毕竟&#xff0c;从官…

    作者头像 李华
    网站建设 2026/1/16 3:58:18

    低代码搭桥,BI 赋能:让每一份数据都生钱

    在数字化转型进入深水区的今天&#xff0c;几乎所有企业都面临着一个共性困境&#xff1a;数据躺在系统里"沉睡"&#xff0c;生产、库存、销售等环节的信息割裂成"孤岛"&#xff0c;明明握着价值金矿&#xff0c;却苦于无法高效开采。传统IT开发周期长、成…

    作者头像 李华
    网站建设 2026/1/14 9:05:52

    嵌入式模组的温度传感器数据传输方法

    1、硬件层信号采集 (1)传感器类型: 数字传感器:直接通过I2C、SPI、1-Wire等协议输出数字信号。 (2)硬件连接: 传感器通过电路连接到微控制器的GPIO、ADC引脚或通信接口(I2C/SPI总线)。 2、底层驱动与数据传输 (1)数字传感器处理流程 通信协议驱动:I2C/SPI:微…

    作者头像 李华
    网站建设 2026/1/18 17:53:19

    华三Telnet/SSH配置指南

    文档版本&#xff1a;V1.0 一、Telnet与SSH协议介绍 1.1 Telnet协议 Telnet&#xff08;Telecommunication Network&#xff09;是基于TCP/IP协议的远程登录协议&#xff0c;默认使用23号端口。该协议允许管理员通过网络远程登录至网络设备&#xff08;如交换机、路由器&…

    作者头像 李华