C++におけるstd::maxの使い方は何ですか?
std::maxはC++標準ライブラリ内のテンプレート関数であり、2つの値を比較して大きい方を返すために使用されます。
std::max関数テンプレートには、異なる型の値を比較するために複数のオーバーロードバージョンがあります。通常、使用されるバージョンには以下のようなものがあります。
- std::max(a, b)はaとbを比較し、大きい方の値を返します。aとbは同じ型であるか、同じ型に暗黙的に変換できる型であることができます。
- std::max(a, b, comp)は、aとbの大小を比較し、カスタム比較関数compを使用して大小関係を決定します。compは2つのパラメータを受け取り、bool型に変換可能な値を返す呼び出し可能オブジェクト(関数ポインタ、関数オブジェクト、またはラムダ式など)です。comp(a, b)がtrueを返す場合、aはbよりも大きいと見なされます。それ以外の場合、bはaよりも大さいと見なされます。
- std::max(std::initializer_list ilist):初期化リストilist内で最大の値を見つけて、その値を返します。このバージョンは複数の値を比較する際に使用できます。
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