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

算法竞赛中常用的数据处理库函数

算法竞赛中常用的数据处理库函数

以下是算法竞赛(如蓝桥杯、牛客网)中常用的 C++11 标准数学库函数,按函数名分类整理,包含使用方式、头文件及功能说明:


一、基础数学运算

函数名使用方式及返回值头文件功能描述
std::abs(x)double abs(double x);
(支持整型/浮点型)
<cmath>返回 x 的绝对值
std::sqrt(x)double sqrt(double x);<cmath>返回 x 的平方根(需 x ≥ 0
std::pow(x, y)double pow(double x, double y);<cmath>返回 x^y(结果为浮点型)
std::hypot(x, y)double hypot(double x, double y);<cmath>返回 √(x² + y²)(两点间欧氏距离)

二、指数与对数函数

函数名使用方式及返回值头文件功能描述
std::exp(x)double exp(double x);<cmath>返回 e^x(自然指数)
std::log(x)double log(double x);<cmath>返回 ln(x)(自然对数,需 x > 0
std::log10(x)double log10(double x);<cmath>返回 log₁₀(x)(以 10 为底)
std::log2(x)double log2(double x);<cmath>返回 log₂(x)(以 2 为底,C++11 新增)

三、三角函数(参数为弧度)

函数名使用方式及返回值头文件功能描述
std::sin(x)double sin(double x);<cmath>返回 x 的正弦值
std::cos(x)double cos(double x);<cmath>返回 x 的余弦值
std::tan(x)double tan(double x);<cmath>返回 x 的正切值
std::atan2(y, x)double atan2(double y, double x);<cmath>返回 y/x 的反正切(四象限,弧度值)

四、取整与舍入函数

函数名使用方式及返回值头文件功能描述
std::ceil(x)double ceil(double x);<cmath>返回不小于 x 的最小整数(向上取整)
std::floor(x)double floor(double x);<cmath>返回不大于 x 的最大整数(向下取整)
std::round(x)double round(double x);<cmath>返回最接近 x 的整数(四舍五入,C++11 新增)
std::trunc(x)double trunc(double x);<cmath>截断小数部分,返回整数部分(向零取整)这个应该可以直接用强制类型转换

五、其他实用函数

函数名使用方式及返回值头文件功能描述
std::cbrt(x)double cbrt(double x);<cmath>返回 x 的立方根(C++11 新增)
std::fmod(x, y)double fmod(double x, double y);<cmath>返回 x/y 的浮点余数(符号与 x 相同)
std::remainder(x, y)double remainder(double x, double y);<cmath>返回 IEEE 余数(符号与 x/y 的商相同)
std::max(a, b)T max(T a, T b);T 为可比较类型)<algorithm>注意头文件返回 ab 中的较大值
std::min(a, b)T min(T a, T b);T 为可比较类型)<algorithm>注意头文件返回 ab 中的较小值

六、注意事项

  1. 数据类型一致性

    • std::abs 支持多种类型(如 int, double),但需确保参数类型正确。
    • std::pow 返回浮点数,整型运算需显式转换:(int)pow(2, 3)
  2. C++11 特有函数

    • std::log2, std::round, std::cbrt 等需确认评测环境支持 C++11。
  3. 性能优化

    • 避免在循环中频繁调用 std::pow,手写快速幂更高效。
    • 优先用 std::hypot 而非 sqrt(x*x + y*y)(避免溢出)。
  4. 非标准函数

    • __gcd(GCC 扩展)可能不可移植,建议手写欧几里得算法。

相关文章:

  • 网站开发的意义百度云下载
  • 网站建设 blog网站建设技术解决方案
  • 坑梓网站建设市场网络营销广告
  • html5编辑器seo推广网络
  • 代做视频的网站好网络营销策略名词解释
  • 专门做化妆的招聘网站网站出售
  • 2025常用的ETL 产品推荐:助力企业激活数据价值
  • PyTorch Tensor维度变换实战:view/squeeze/expand/repeat全解析
  • SPI、UART、IIC(I²C) 通信协议的详细介绍及对比分析
  • NO.86十六届蓝桥杯备战|动态规划-01背包|采药|小A点菜|Cow Frisbee Team(C++)
  • KWDB创作者计划—KWDB:重新定义数据管理的边界
  • (51单片机)串口通讯(串口通讯教程)(串口接收发送教程)
  • 支付系统C扫B全链路压测方案
  • NLP高频面试题(三十九)——什么是大模型的涌现能力?
  • MATLAB在哪些特定领域比Python更有优势?
  • 华强北手表256G的,真实有多少?如何打开调试模式及root
  • GaussDB ECPG与Oracle Pro_C深度对比:嵌入式SQL开发者的迁移指南
  • SAP S/4HANA Public Cloud的实施特点、项目阶段、资源和工具
  • 特辣的海藻!16
  • uniapp实现H5页面麦克风权限获取与录音功能
  • 矩阵热图】】
  • UE5 RPC调用示例详解
  • 探索 UI 设计服务:提升用户体验的关键力量
  • Server-Sent Events一种允许服务器向客户端发送实时更新的 Web API
  • 利用大模型和聚类算法找出 Excel 文件中重复或相似度高的数据,并使用 FastAPI 进行封装的详细方案
  • 【学生管理系统升级版】