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

Android常用C++特性之std::abs

声明:本文内容生成自ChatGPT,目的是为方便大家了解学习作为引用到作者的其他文章中。

std::abs 是 C++ 标准库中的一个函数,用于计算整数、浮点数或其他数值类型的绝对值。它返回一个值,该值是参数的非负数形式,即去掉负号的值。如果参数是正数或零,std::abs 直接返回该值。

C++ 标准库中的 std::abs 有多个重载版本,用于处理不同类型的参数。

语法

#include <cstdlib>    // 对于整数类型
#include <cmath>      // 对于浮点数和其他数学函数

// 整数类型
int abs(int n);
long abs(long n);
long long abs(long long n);

// 浮点数类型
float fabs(float n);
double fabs(double n);
long double fabs(long double n);

返回值

  • 如果参数为负数,则返回其相反数,即该数的绝对值。
  • 如果参数为正数或 0,则返回该值本身。

示例

1. 计算整数的绝对值
#include <iostream>
#include <cstdlib>  // 用于 std::abs

int main() {
    int x = -10;
    int y = 5;

    std::cout << "Absolute value of x: " << std::abs(x) << std::endl;
    std::cout << "Absolute value of y: " << std::abs(y) << std::endl;

    return 0;
}

输出:

Absolute value of x: 10
Absolute value of y: 5
2. 计算浮点数的绝对值

对于浮点数,使用 std::fabs 函数。

#include <iostream>
#include <cmath>  // 用于 std::fabs

int main() {
    double a = -3.14;
    double b = 2.71;

    std::cout << "Absolute value of a: " << std::fabs(a) << std::endl;
    std::cout << "Absolute value of b: " << std::fabs(b) << std::endl;

    return 0;
}

输出:

Absolute value of a: 3.14
Absolute value of b: 2.71
3. std::abs 处理长整型

std::abs 也可以处理 longlong long 类型的整数。

#include <iostream>
#include <cstdlib>  // 用于 std::abs

int main() {
    long x = -1000000L;
    long long y = -10000000000LL;

    std::cout << "Absolute value of x: " << std::abs(x) << std::endl;
    std::cout << "Absolute value of y: " << std::abs(y) << std::endl;

    return 0;
}

输出:

Absolute value of x: 1000000
Absolute value of y: 10000000000

注意事项

  • 对于整数类型,std::abs 可以处理 int, long, 和 long long 类型。
  • 对于浮点数类型,使用 std::fabs 来处理 float, double, 和 long double 类型。
  • 对于自定义的数值类型(如 std::complex),C++ 也提供了相应的绝对值计算函数(如 std::abs 专用于 std::complex)。

总结

  • std::abs 主要用于计算整数的绝对值。
  • 对于浮点数类型,应使用 std::fabs 进行绝对值计算。
  • 支持不同的数值类型重载,如 int, long, long long, float, double 等。

http://www.kler.cn/a/327740.html

相关文章:

  • Clickhouse分布式表初体验
  • python的内存管理机制
  • DOM元素导出图片与PDF:多种方案对比与实现
  • 数据集-目标检测系列-豹子 猎豹 检测数据集 leopard>> DataBall
  • 线程池:线程池的实现 | 日志
  • 普通人如何在未来市场中寻找赚钱机会?
  • 深信服2025届全球校招研发笔试-C卷(AK)
  • UE4/UE5开发资源
  • pyqt QGraphicsView 以鼠标为中心进行缩放
  • uniapp中实现评分组件,多用于购买商品后,对商品进行评价等场景
  • 数据结构-AC自动机
  • python 实现矩阵的Schur complement舒尔补算法
  • Goland无法使用debug的修复
  • 【源码+文档+调试讲解】无人超市系统python
  • 【Docker】02-数据卷
  • 【研1深度学习】《神经网络和深度学习》阅读笔记(记录中......
  • 博弈论(学习笔记)
  • RK3568 android11 适配鼎桥MT5710-CN 5G模块
  • 墙绘产品在线展示:SpringBoot技术的应用
  • 数据结构——对顺序线性表的操作