C++ アルゴリズム 最大() 関数は次の 3 つの方法で使用できます。
- 引数で渡された 2 つの値を比較し、 それらの間の大きい方を返します 。両方が等しい場合は、最初のものを返します。
- また、次の関数を使用して 2 つの値を比較します。 二項関数 これはユーザーによって定義され、std::max() の引数として渡されます。
- を見つけるためにも使用されます。 指定されたリスト内の最大の要素 、リスト内に最大のものが複数ある場合は、最初のものが返されます。
要素は演算子を使用して比較されます
構文
default (1) template const T& max (const T& a, const T& b); //until C++ 11 custom (2) template const T& max (const T& a, const T& b, Compare comp); //until C++ 11 default (1) template const T& max (const T& a, const T& b); //until C++ 14 custom (2) template const T& max (const T& a, const T& b, Compare comp); //until C++ 14 initializer list (3) template T max (initializer_list il); template T max (initializer_list il, Compare comp); //until C++ 14 default (1) template constexpr const T& max (const T& a, const T& b); //since C++ 14 //since C++ 14 custom (2) template constexp const T& max(const T& a, const T& b, Compare comp); // since C++ 14 initializer list (3) template constexpr T max (initializer_list il); template constexpr T max (initializer_list il, Compare comp); //since C++ 14
パラメータ
ある : 比較する最初の値。
b : 比較する 2 番目の値。
コンプ : 2 つの引数を受け入れ、2 つの引数が正しい場合は true を返し、それ以外の場合は false を返すユーザー定義のバイナリ述語関数。要素を順序付けるための厳密な弱い順序に従います。
の : 比較する値を含むinitializer_list。
シュエタ・ティワリ俳優
戻り値
a と b の最大値を返します。値が等しい場合は、a を返します。
il の最大値を返します。複数の値が最大値に等しい場合、そのような左端の値を返します。
複雑
複雑さは、比較される要素の数より 1 少ない数では線形です。
例外
いずれかの比較で例外がスローされた場合、この関数は例外をスローします。
注: 無効なパラメータは未定義の動作を引き起こします。
例1
max() の使用法を示す簡単な例を見てみましょう。
#include #include #include using namespace std; int main() { cout << 'larger of 1 and 9999: ' << std::max(1, 9999) << ' ' << 'larger of 'a', and 'b': ' << max('a', 'b') << ' ' << 'longest of 'foo', 'bar', and 'hello': ' << max( { 'foo', 'bar', 'hello' }, [](const string& s1, const string& s2) { return s1.size() < s2.size(); }) << ' '; return 0; }
出力:
larger of 1 and 9999: 9999 larger of 'a', and 'b': b longest of 'foo', 'bar', and 'hello': hello
例 2
デフォルト バージョンを使用した max() の使用法を示す別の簡単な例を見てみましょう。
#include // std::cout #include // std::max using namespace std; int main () { cout << 'max(1,2)==' << max(1,2) << ' '; cout << 'max(2,1)==' << max(2,1) << ' '; cout << 'max('a','z')==' << max('a','z') << ' '; cout << 'max(3.14,2.73)==' << max(3.14,2.73) << ' '; return 0; }
出力:
max(1,2)==2 max(2,1)==2 max('a','z')==z max(3.14,2.73)==3.14
例 3
比較関数を使用した max() の使用法を示す別の簡単な例を見てみましょう。
#include #include using namespace std; // Defining the binary function bool comp(int a, int b) { return (a <b); } int main() { a="7;" b="28;" cout << max(a,b,comp) ' '; returns the first one if both numbers are same max(7,7,comp); return 0; < pre> <p> <strong>Output:</strong> </p> <pre> 28 7 </pre> <h2>Example 4</h2> <p>Let's see a simple example to find the maximum element in the list:</p> <pre> #include #include using namespace std; // Defining the binary function bool comp(int a, int b) { return (a <b); } int main() { finding the largest of all numbers cout << 'maximum element is: '<< max({1, 2, 3, 4, 5, 10, -1, 7},comp) ' '; return 0; < pre> <p> <strong>Output:</strong> </p> <pre> Maximum element is: 10 </pre> <br></b);></pre></b);>
例 4
リスト内の最大の要素を見つける簡単な例を見てみましょう。
#include #include using namespace std; // Defining the binary function bool comp(int a, int b) { return (a <b); } int main() { finding the largest of all numbers cout << \'maximum element is: \'<< max({1, 2, 3, 4, 5, 10, -1, 7},comp) \' \'; return 0; < pre> <p> <strong>Output:</strong> </p> <pre> Maximum element is: 10 </pre> <br></b);>