C++ 標準ライブラリのヘッダー ファイル <algorithm> に含まれており、min および max マクロはヘッダー ファイル <windows.h> に定義されています。<windows.h> がインクルードされているときに <algorithm> がインクルードされている場合、関数は実行されません利用できるようになります。
<windows.h> は、min 関数を置き換える _cpp_min などの関数を提供します。
C++11 標準: <algorithm> の min 関数のプロトタイプ
デフォルト (1) | template <class T> const T& min (const T& a, const T& b); |
---|---|
カスタム (2) | template <class T, class Compare> const T& min (const T& a, const T& b, Compare comp); |
初期化子リスト (3) | テンプレート <class T> T min (initializer_list<T> il); template <class T, class Compare> T min (initializer_list<T> il, Compare comp); |
最小のものを返します
a
と
b
の最小のものを返します 。両方が等しい場合は、
a
が返されます。
初期化子リストのバージョン (3) は 、リスト内のすべての要素のうち最小のものを返します。複数ある場合は最初のものを返します。
この関数は
operator<
(または、 指定されている場合は
comp
) を使用して値を比較します。
eg:custom2<pre style="margin-top: 0px; margin-bottom: 0px; color: rgb(0, 128, 0);">template <class T, class Compare>
const T& min (const T& a, const T& b, Compare comp);
#include<iostream>
#include<algorithm>
using namespace std;
struct var {
char *name;
int key;
var(char *a,int k):name(a),key(k){}
};
bool comp(const var& l, const var& r) {
return l.key < r.key;
}
int main() {
var v1("var1", 2);
var v2("var2", 3);
cout << std::min(v1, v2,comp).name << endl;
return 0;
}
安定した_sort、max関数はminと同じです