【筆記】C++ std::min 簡介和使用
std::min()
簡介
min
用來判斷大小值,回傳值為判斷值中的最小值。
「兩值判斷」範例
1 | cout << min(123, 321); // return 123 |
你說既然 int, float, char 都可以比較,那 string 呢?
1 | cout << min("Aa", "Ab"); |
猜猜看答案是什麼?Aa
?Ab
?還是會報錯?
點我看答案
答案是不一定,要看編譯器的處理,在 gcc 中,會回傳以下答案
1 | Ab |
這是因為 “Aa” 跟 “Ab” 並非實際存在一個變數位置,因此這兩個實際稱作:字串常量,也就是這兩個會指向某個地址,而剛好,“Ab” 所在的指標地址比 “Aa” 小,因此回傳 “Ab”。
若要實際比較兩個字串,請使用變數存取後比較,否則要先強制轉型態
1 | string s1 = "Aa", s2 = "Ab"; |
1 | Aa |
「多值判斷」範例
使用一對 {
}
來建構 initializer_list 直接丟進 min 即可得最小值。
1 | cout << min({3, 5, 67}); // return 3 |
若要判斷 vector 中的最小值,建議使用 std::min_element
。