news 2026/7/18 10:32:20

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/7/17 5:20:33

    储能辅助火电机组二次调频控制策略及容量优化配置研究Simulink实现

    ✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码获取及仿…

    作者头像 李华
    网站建设 2026/7/17 3:52:10

    I2C与SPI

    它们是嵌入式系统和电子设备中两种最重要、最常用的串行通信协议,用于在芯片之间进行短距离、板级的数据交换。 我们可以把它们想象成设备之间“对话”的两种不同方式,各有各的规则和适用场景。 1、I2C(Inter-Integrated Circuit,集成电路总线) I2C是一种多主从、半双工…

    作者头像 李华
    网站建设 2026/7/18 1:43:12

    配电网中的拥塞管理Congestion Management in Distribution Networks

    核心定义 配电网中的拥塞管理&#xff0c;是指配电系统运营商&#xff08;DSO&#xff09;采取一系列技术和经济措施&#xff0c;预防、检测和消除配电网中关键设备&#xff08;如线路、电缆、变压器&#xff09;出现的过载或运行越限&#xff0c;以确保电网安全、可靠、高效运…

    作者头像 李华
    网站建设 2026/7/17 14:05:58

    中华人民共和国劳动合同法

    官网:中华人民共和国劳动合同法_中国人大网 第一章 总  则 第一条 为了完善劳动合同制度,明确劳动合同双方当事人的权利和义务,保护劳动者的合法权益,构建和发展和谐稳定的劳动关系,制定本法。 第二条 中华人民共和国境内的企业、个体经济组织、民办非企业单位等组…

    作者头像 李华
    网站建设 2026/7/17 0:59:40

    Kotaemon HTTPS 部署教程:SSL证书配置全流程

    Kotaemon HTTPS 部署与 SSL 证书配置实战指南 在企业级智能对话系统逐步渗透金融、医疗、政务等高敏感场景的今天&#xff0c;数据传输安全已不再是“可选项”&#xff0c;而是构建可信 AI 服务的基石。Kotaemon 作为专注于生产级 RAG&#xff08;检索增强生成&#xff09;与复…

    作者头像 李华