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

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

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

  • 获取最大值:

    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_MAX 和 INT_MIN :分别表示 int 类型的最大值和最小值。
  • LONG_MAX 和 LONG_MIN :分别表示 long 类型的最大值和最小值。
常量:
cpp 复制代码
#include <climits>

INT_MAX  // int 类型的最大值
INT_MIN  // int 类型的最小值
LONG_MAX // long 类型的最大值
LONG_MIN // long 类型的最小值
优点:
  • 代码简洁,直接使用常量即可。
  • 适用于 int 和 long 类型,无需调用额外的函数。
缺点:
  • 类型局限性 :只能用于基本的整数类型,对于 float、double 等类型无法使用。
  • 不够通用:如果需要处理其他类型或复杂数据结构时,代码的可扩展性较差。
相关推荐
飞Link3 小时前
什么是 AirSim?一文读懂无人机仿真平台
python·算法·无人机
学逆向的4 小时前
C 堆区内存管理
c语言·开发语言·网络安全
huoyueyi4 小时前
《融天AI-APP从0到1开发实录》
开发语言·lua
xiaoye-duck5 小时前
《C++ 工具库实战》gflags 命令行参数解析库详解
c++·第三方库
OpenAnolis小助手5 小时前
PHP 两个严重漏洞曝光,龙蜥社区 24 小时完成 3 版本修复
开发语言·操作系统·php·龙蜥社区
一去不复返的通信er6 小时前
贪心算法-合并区间(LeetCode 56)
算法·leetcode·贪心算法
狂奔的sherry6 小时前
C++ 宏生成访问函数的代价:访问权限、调试和类型检查
c++·宏·编译·预处理器·类型检查
阿尼卡~6 小时前
VS Code 配置 C 语言开发环境(Windows 10/11):从 GCC 安装到运行、断点调试,一篇搞定
c语言·开发语言·windows
Shaoshing6 小时前
LeetCode100 49. 字母异位词分组
java·算法