std::max是C++標準庫中的一個函數模板,用于比較兩個值的大小并返回較大的值。
std::max函數模板有多個重載版本,可以用于比較不同類型的值。通常使用的版本有以下幾種:
std::max(a, b):比較a和b的大小,返回較大的值。a和b可以是相同類型或可隱式轉換為相同類型的類型。
std::max(a, b, comp):比較a和b的大小,使用自定義的比較函數comp來確定大小關系。comp是一個可調用對象(如函數指針、函數對象或Lambda表達式),它接受兩個參數,返回一個可轉換為bool類型的值,表示a和b的大小關系。如果comp(a, b)返回true,則a被認為是大于b;否則,b被認為是大于等于a。
std::max(std::initializer_list
使用std::max的示例:
#include <iostream>
#include <algorithm>
int main() {
int a = 5;
int b = 10;
int max_value = std::max(a, b);
std::cout << "Max value: " << max_value << std::endl;
double x = 3.14;
double y = 2.718;
double max_value2 = std::max(x, y);
std::cout << "Max value: " << max_value2 << std::endl;
auto comp = [](int a, int b) { return a % 10 < b % 10; };
int max_value3 = std::max(a, b, comp);
std::cout << "Max value: " << max_value3 << std::endl;
int max_value4 = std::max({1, 2, 3, 4, 5});
std::cout << "Max value: " << max_value4 << std::endl;
return 0;
}
輸出結果:
Max value: 10
Max value: 3.14
Max value: 5
Max value: 5