c++ - 在 C++ 中找到 3 个数字中最小的

标签 c++ max min

有什么方法可以让这个函数更优雅吗?我是 C++ 新手,我不知道是否有更标准化的方法来做到这一点。这可以变成一个循环,这样变量的数量就不会像我的代码那样受到限制吗?

float smallest(int x, int y, int z) {

  int smallest = 99999;

  if (x < smallest)
    smallest=x;
  if (y < smallest)
    smallest=y;
  if(z < smallest)
    smallest=z;

  return smallest;
}

最佳答案

如果可能,我建议使用 C++11 或更高版本,它允许您在不实现自己的函数 (std::min) 的情况下计算所需的结果。正如其中一条评论中已经指出的那样,您可以这样做

T minimum(std::min({x, y, z}));

T minimum = std::min({x, y, z});

存储变量的最小值x , yz在变量 minimum类型 T (注意 xyz 必须具有相同的类型或必须隐式转换为它)。相应地,同样可以得到最大值:std::max({x, y, z}) .

关于c++ - 在 C++ 中找到 3 个数字中最小的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9424173/

相关文章:

HTTPS 的 C++ 编程

arrays - 具有未知维度的数组的matlab最大值

r - 更有效的方式:selecting vec from a list

java - 将 List<Integer> 分成 5 个最小值周围的 5 个 block 列表的好方法

c++ - 如何使用着色器在 opengl es 中渲染四边形内的部分纹理

c++ - 返回的通用 lambda 的参数据称会影响自由函数的参数

c++ - 我怎样才能用多态来实现这个?

sql - 如何使 MySQL MAX() 将 NULL 视为最小可能值?

php - Min() 与 INNER JOIN 和全文搜索

MYSQL单表MAX和MIN时间差