[C++] std::min, std::max 用法

Tumi
3 min readFeb 26, 2024

--

簡單介紹一下 std::maxstd::min 的用法!

std::maxstd::min 能得到最大最小值,型別除了數字的 short, int, long, float, double...,字元的 char 也是可以的 (比較其 ASCII code 大小)。

P.S. 函數被定義在 C++ header file <algorithm>,使用前記得先 include 喔!

兩個數值取最大 / 最小值

#include <iostream>
#include <algorithm>

// max
std::cout << std::max(1, 3) << std::endl; // 3
std::cout << std::max(2.4, 3.5) << std::endl; // 3.5
std::cout << std::max('a', 'b') << std::endl; // 'b'
std::cout << std::max('a', '+') << std::endl; // 'a' [ASCII code: 97(a), 43(+)]

// min
std::cout << std::min(1, 3) << std::endl; // 1
std::cout << std::min(2.4, 3.5) << std::endl; // 2.4
std::cout << std::min('a', 'b') << std::endl; // 'a'
std::cout << std::min('a', '+') << std::endl; // '+' [ASCII code: 97(a), 43(+)]

多個數值取最大 / 最小值

只需要透過 {} 把多個數值包起來就可以了~

#include <iostream>
#include <algorithm>

// max
std::cout << std::max({1, 3, 4, 2}) << std::endl; // 4
std::cout << std::max({1.6, 3.5, 2.4, 2.2}) << std::endl; // 3.5
std::cout << std::max({'a', 'b', 'f', 'x'}) << std::endl; // 'x'
// [ASCII code: 97(a), 43(+), 65(A), 48(0)]
std::cout << std::max({'a', '+', 'A', '0'}) << std::endl; // 'a'

// min
std::cout << std::min({1, 3, 4, 2}) << std::endl; // 1
std::cout << std::min({1.6, 3.5, 2.4, 2.2}) << std::endl; // 1.6
std::cout << std::min({'a', 'b', 'f', 'x'}) << std::endl; // 'a'
// [ASCII code: 97(a), 43(+), 65(A), 48(0)]
std::cout << std::min({'a', '+', 'A', '0'}) << std::endl; // '+'

--

--