std::max
提供: cppreference.com
![]() | このページは、Google 翻訳を使って英語版から機械翻訳されました。 翻訳には誤りや奇妙な言い回しがあるかもしれません。文章の上にポインタをおくと、元の文章が見れます。誤りを修正して翻訳を改善する手助けをしてください。翻訳についての説明は、ここをクリックしてください。 |
ヘッダ <algorithm> で定義 | ||
template<class T > const T& max(const T& a, const T& b ); | (1) | |
template<class T, class Compare > const T& max(const T& a, const T& b, Compare comp ); | (2) | |
template<class T > T max(std::initializer_list<T> ilist); | (3) | (C++11およびそれ以降) |
template<class T, class Compare > T max(std::initializer_list<T> ilist, Compare comp ); | (4) | (C++11およびそれ以降) |
2つの値の大きい方を返します。.
3-4) Original:
Returns the greater of the two values.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
初期化子リスト
ilist
内の値の最大を返します。.Original:
Returns the greatest of the values in initializer list
ilist
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
(1,3)のバージョンでは値を比較するoperator<使用、(2,4)のバージョンは、指定された比較関数
comp
を使用.Original:
The (1,3) versions use operator< to compare the values, the (2,4) versions use the given comparison function
comp
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
目次 |
[編集]パラメータ
a, b | - | 比較する値 Original: the values to compare The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
ilist | - | 比較するための値で初期化子リスト Original: initializer list with the values to compare The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
comp | - | 比較関数. if a is less than b 場合、 trueを返します. 比較関数のシグネチャは以下と同等でなければなりません. bool cmp(const Type1 &a, const Type2 &b); シグネチャは |
型の要件 | ||
-T は LessThanComparable の要件を満たさなければなりません。 for the overloads (1) and (3) | ||
-T は CopyConstructible の要件を満たさなければなりません。 for the overloads (3) and (4) |
[編集]値を返します
1-2)a
の大きくb
。それらが等しい場合、リターンa
.Original:
The greater of
a
and b
. If they are equivalent, returns a
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
ilist
における最大値。いくつかの値が最大と同等である場合は、一番左のいずれかを返します。.Original:
The greatest value in
ilist
. If several values are equivalent to the greatest, returns the leftmost one.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[編集]複雑性
1-2) 定数
3-4)ilist.size()
のリニアOriginal:
Linear in
ilist.size()
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[編集]可能な実装
First version |
---|
template<class T>const T& max(const T& a, const T& b){return(a < b)? b : a;} |
Second version |
template<class T, class Compare>const T& max(const T& a, const T& b, Compare comp){return(comp(a, b))? b : a;} |
Third version |
template<class T > T max(std::initializer_list<T> ilist){return*std::max_element(ilist.begin(), ilist.end());} |
Fourth version |
template<class T, class Compare > T max(std::initializer_list<T> ilist, Compare comp ){return*std::max_element(ilist.begin(), ilist.end(), comp);} |
[編集]例
#include <algorithm>#include <iostream>#include <string> int main(){std::cout<<"larger of 1 and 9999: "<< std::max(1, 9999)<<'\n'<<"larger of 'a', and 'b': "<< std::max('a', 'b')<<'\n'<<"longest of \"foo\", \"bar\", and \"hello\": "<< std::max({"foo", "bar", "hello"}, [](conststd::string& s1, conststd::string& s2){return s1.size()< s2.size();})<<'\n';}
出力:
larger of 1 and 9999: 9999 larger of 'a', and 'b': b longest of "foo", "bar", and "hello": hello
[編集]参照
指定された値の小さい方を返します (関数テンプレート) | |
(C++11) | 2つの要素の小さい方と大きい方を返します (関数テンプレート) |
指定範囲の最も大きな要素を返します (関数テンプレート) | |