C++ 中的最大值和最小值判断

1. 使用 std::numeric_limits<T>::max()std::numeric_limits<T>::min()

std::numeric_limits 是 C++ 标准库中的模板类,用于获取各种数据类型的最大值和最小值。它提供了一种通用的方式,适用于所有标准数据类型(如 intlongfloatdouble 等)。

  • 获取最大值

    cpp 复制代码
    #include <limits>
    std::numeric_limits<int>::max();  // int 类型的最大值
    std::numeric_limits<long>::max(); // long 类型的最大值
    std::numeric_limits<float>::max(); // float 类型的最大值
  • 获取最小值

    cpp 复制代码
    #include <limits>
    std::numeric_limits<int>::min();  // int 类型的最小值
    std::numeric_limits<long>::min(); // long 类型的最小值
    std::numeric_limits<float>::min(); // float 类型的最小值
优点
  • 通用性强:适用于所有数据类型。
  • 跨平台兼容性:可以处理不同平台和编译器的差异。
缺点
  • 每次需要调用 std::numeric_limits,代码稍微冗长。

2. 使用预定义常量(如 INT_MIN, INT_MAX

<climits> 头文件中,C++ 定义了一些常量,表示 int 类型和其他基础数据类型的最小值和最大值。

  • INT_MAXINT_MIN :分别表示 int 类型的最大值和最小值。
  • LONG_MAXLONG_MIN :分别表示 long 类型的最大值和最小值。
常量
cpp 复制代码
#include <climits>

INT_MAX  // int 类型的最大值
INT_MIN  // int 类型的最小值
LONG_MAX // long 类型的最大值
LONG_MIN // long 类型的最小值
优点
  • 代码简洁,直接使用常量即可。
  • 适用于 intlong 类型,无需调用额外的函数。
缺点
  • 类型局限性 :只能用于基本的整数类型,对于 floatdouble 等类型无法使用。
  • 不够通用:如果需要处理其他类型或复杂数据结构时,代码的可扩展性较差。
相关推荐
Awna8 分钟前
Golang 大小写可见性规范
开发语言·后端·golang
别动我齐刘海22 分钟前
Day6 unitree_G1人形机器人GMR—— MotionInput
c语言·c++·人工智能·学习·机器学习·机器人·github
Hi李耶39 分钟前
【LeetCode】541.反转字符串 II
算法·leetcode·职场和发展
shylyly_42 分钟前
104.二叉树的最大深度
数据结构·算法·104.二叉树的最大深度
AI科技星1 小时前
曲率‑挠率与 $\boldsymbol{\omega/c}$ 的关系、精算验证及其物理意义
c语言·开发语言·线性代数·算法·决策树·机器学习·ai科技星
Henry Zhu1231 小时前
C++17 `weak_from_this` 详解:让对象安全地观察自己
c++
鹿角片ljp1 小时前
Java框架篇:Spring + SpringMVC + SpringBoot + MyBatis深度复习
java·开发语言
沐籽李2 小时前
HuDiff在抗体人源化项目中的工程化落地
人工智能·算法·aidd·抗体设计
依然范特东2 小时前
强化学习笔记6--IS、PPO、TD、DQN、Actor-Critic
笔记·算法
xlxxy_3 小时前
外部系统调用SAP接口遇到的一些报错
开发语言·数据库·sap·abap