📜  c++ 中的 min(1)

📅  最后修改于: 2023-12-03 14:39:54.500000             🧑  作者: Mango

C++ 中的 min

min 是 C++ 中的一个非常常用的函数,用于返回两个值中的较小值。在头文件 <algorithm> 中定义,函数原型如下:

template <class T> const T& min (const T& a, const T& b);

其中,T 可以是任意数据类型,包括基本数据类型如整型、浮点型等,也可以是自定义的结构体或类。返回值是传入参数 ab 两个值中较小的一个。由于返回值类型为 const T&,因此函数不会改变传入的参数值。

使用示例

下面是使用 min 函数的一些示例:

#include <iostream>
#include <algorithm>

int main() {
    int a = 10, b = 20;
    int c = std::min(a, b);  // 返回 10,将其赋值给变量 c
    std::cout << c << std::endl;
    
    double x = 3.14, y = 2.71;
    double z = std::min(x, y);  // 返回 2.71,将其赋值给变量 z
    std::cout << z << std::endl;
    
    return 0;
}

值得注意的是,在比较结构体或类时,需要定义 operator< 函数,否则编译器不知道如何进行比较。下面是一个比较 Person 结构体对象的例子:

#include <iostream>
#include <string>
#include <algorithm>

struct Person {
    std::string name;
    int age;
    
    bool operator<(const Person& other) const {
        return age < other.age;
    }
};

int main() {
    Person p1{"Alice", 30}, p2{"Bob", 25};
    Person p3 = std::min(p1, p2);  // 返回 p2,因为 p2 的年龄更小
    std::cout << p3.name << std::endl;
    
    return 0;
}
总结

本文介绍了 C++ 中的 min 函数,其定义在 <algorithm> 头文件中,可以返回两个值中较小的那个。函数可以用于任意数据类型,包括自定义的结构体和类。在比较结构体或类时,需要定义 operator< 函数。